-
静态方法中,$this伪变量不允许使用。可以使用self,parent,static在内部调用静态方法与属性。
查看全部 -
在子类中如果定义了__construct则不会调用父类的__construct,如果需要同时调用父类的构造函数,需要使用parent::__construct()显式的调用。
查看全部 -
使用关键字static修饰的,称之为静态方法,静态方法不需要实例化对象,可以通过类名直接调用,操作符为双冒号::。
class Car { public static function getName() { return '汽车'; } } echo Car::getName(); //结果为“汽车”
查看全部 -
数据库操作完成后可以使用mysql_close关闭数据库连接,默认当php执行完毕会自动关闭数据库连接。
mysql_close();
在对性能要求较高的情况下,在进行数据库操作后尽快关闭连接,以节省资源提高性能。
存在多个数据库连接的情况下,可以设定连接资源参数来关闭指定的连接
$link =mysql_connection($host,$user,$password); mysql_close($link);
查看全部 -
数据更新删除相对简单,只需要构建好相应sql语句,然后调用mysql_query执行就能完成
$sql="update user set name='李四' where id =2 limit 1"; if(mysql_query($sql)){ echo "更新成功"; }
删除:
$sql ="delete from user where id=2 limit 1"; if(mysql_query($sql)){ echo "删除成功"; }
对于删除和更新操作,可以通过函数mysql_affected_row函数来获取更新过的数据行数,数据无变化返回0。
$sql ="update user set name='张三' where id =2 "; if(sql_query($sql)){ echo mysql_affected_rows(); }
查看全部 -
通过mysql的limit可以很容易的实现分页,limit m,n 表示从m行后取n行数据,在php中需要构造m与n来实现分页查询结果。
假定当前页为$page,每页显示$n条数据,m为当前页前面所有的数据,既$m=($page-1)*$n,知道原理后通过构造sql语句在php中实现分页查询。
$page=2; $n=2; $m=($page-1)*$n; $sql ="select * from user limit $m,$n"; $res=mysql_select($sql); //获取当前页数据 $data=array(); while($row=mysql_fetch_assoc($result)){ $data[]=$row; }
例子中使用了$m和$n变量标识偏移量与每页数据条数,推荐更有意义的变量名表示,入$page_size,$start,$offset等更容易理解。
查看全部 -
php中有多个函数可以获取数据集中的一行数据,最常用的是mysql_fetch_array,可以通过设定参数来更改行数据的下标,默认的会包含数字索引的下标以及字段名的关联索引下标。
$sql='select * from user limit 1'; $res=mysql_query($sql); $row=mysql_fetch_array($res);
可以通过设定参数MYSQL_NUM只获取数字索引数组,等同于mysql_fetch_row函数,若设定参数为MYSQL_ASSOC则只获取关联索引数组,等同于mysql_fetch_assoc函数。
$row=mysql_fetch_row($res); $row=mysql_fetch_array($res,MYSQL_NUM); //这两个方法获取的数据是一样的 $row=mysql_fetch_assoc($res); $row=mysql_fetch_array($res,MYSQL_ASSOC);
若要获取数据集中所有数据,通过循环来遍历整个结果集
$data=array(); while($row=mysql_fetch_array($res)){ $data[]=$row; }
查看全部 -
执行插入数据和查询类似,也是通过执行一个sql来实现,例如:
$sql ="insert into user(name,age,class) values ('张三',18,'高一三班')"; mysql_query($sql);//执行插入语句
通常数据存在于变量或数组中,因此需要先进行字符串拼接得到。
$name ='张三'; $age=18; $class='高三一班'; $sql="insert into user(name,age,class) values('$name','$age','$class')"; mysql_query($sql);//执行插入语句、
在mysql中没执行插入语句以后可以得到自增的主键id可以通过msql_insert_id函数获取该id.
$uid=mysql_insert_id();
可以通过这个来判断是否插入成功或者关联进行其他数据操作
查看全部 -
在数据库建立连接后进行查询,采用mysql_query加sql语句的形式向数据库发送查询指令。
$res=mysql_query('select * from user');
对于查询类的语句会返回一个资源句柄(resource),可以通过该资源获取查询结果集中的数据。
$row=mysql_fetch_array($res); car_down($row);
默认php使用最近的数据库连接执行查询,若存在多个连接的情况,则可以通过参数命令指定查询的连接。
$link1=mysql_connection('127.0.0.1','code1',''); $link2=mysql_connection('127.0.0.1','code2','',true);//开启一个新的连接 $res=mysql_query('select * from user limit 1',$link1);//从第一个连接查询数据
查看全部 -
php对数据库进行操作首先需要建立链接,通常使用mysql_connect函数进行数据库链接,该函数需要知道数据库的地址用户名和密码
$host = 'localhost'; $user = 'code1'; $pass = ''; $link = mysql_connect($host, $user, $pass);
php链接数据库的方式类似直接在命令行下进行连接,类似
mysql -h localhost -u code1 -p
连接成功后需要选择一个操作的数据库,通过mysql_select_db函数来选择数据库
mysql_selec_db('testdb');
通常会先设置一下当前连接使用的字符编码,一般用的utf-8
mysql_query("set names 'utf8'");
通过上面步骤就与数据库建立了连接,可以进行数据库操作了。
查看全部 -
php中一个数据库可能有一个或多个扩展,既有官方的也有第三方提供的。像mysql常用的扩展有原生的mysql库,也可以使用增强版的mysqli扩展,还可以使用PDO进行链接和操作。
不同扩展提供基本相近的操作方法,不同的是可能具备一些新特性以及操作性能可能会有所不同。
mysql扩展进行数据库链接的方法:
$link=mysql_connect('mysql_host','user','password');
mysqli扩展:
$link=mysqli_connection('mysql_host','user','password');
PDO扩展:
$dsn='mysql:dbname=testdb;host=127.0.0.1'; $dbh=new PDO($dsn,'user','password');
查看全部 -
通过安装相应的扩展来实现数据库操作,当前主流数据库MsSQL,MySQL,Sybase,Db2,Oracle,PostgreSQL,Access等都能够安装扩展来支持,一般情况下常说的LAMP架构值:Linux、Apache、Mysql、PHP,因此Mysql数据库在Php中的应用非常广泛。
查看全部 -
在异常信息捕获后,我们可以通过异常处理对象获取其中的异常信息,以及获取基本的错误信息。
在实际应用中,通常或获取足够多的异常信息,然后写入到错误日志中。
通过文件名、行号、错误信息、异常追踪信息等记录到日志中,以便以调试与修复问题。
try { throw new Exception('wrong'); } catch(Exception $ex) { $msg = 'Error:'.$ex->getMessage()."\n"; $msg.= $ex->getTraceAsString()."\n"; $msg.= '异常行号:'.$ex->getLine()."\n"; $msg.= '所在文件:'.$ex->getFile()."\n"; //将异常信息记录到日志中 PHP异常处理之 file_put_contents('error.log', $msg); }
查看全部 -
通过try catch来捕获异常,将执行代码放到try块中,一旦其中代码抛出异常,就能在catch中捕获。
在实际应用中,不会轻易抛出异常,只有在极端情况或者非常重要的情况下才回抛出异常,抛出异常可以保障程序的正确性与安全,避免导致不可预知的bug。
一般异常处理流程:
try{ throw new Exception('wrong'); }catch(Exception $ex){ echo 'Error:'.$ex->getMessage().'<br>'; echo $ex->getTraceAsString().'<br>'; } echo '异常处理后继续执行的代码';
查看全部 -
php具有许多异常处理类其中E相册旁听是所有异常处理的基类。
Exception具有几个基本属性与方法:
message:异常消息内容
code:异常代码
file:抛出异常的文件
line:抛出异常在该文件中的行数
其中的方法有:
getTrace:获取异常追踪信息
getTraceAsString:获取异常追踪信息的字符串
getMessage:获取出错信息
可以通过继承Exception类来创建自定义的异常处理类
//自定义的异常处理类,机场异常基类Exception
class MyException extends Exception{ function getInfo(){ return '自定义错误信息'; } } try{ //触发异常 throw new MyException('error'); }catch(Exception $e){ echo $e->getInfo();//获取自定义的异常信息 echo $e->getMessage();//获取继承基类的getMessage信息 }
查看全部
举报