1、说明
根据PHP的版本,有两个或三个用于访问MySQL数据库的PHP API。 PHP 5用户可以选择不推荐使用的mysql扩展名,mysqli或PDO_MySQL。 PHP 7删除了mysql扩展,只留下后两个选项。
mysql_query()仅对SELECT,SHOW,DESCRIBE,EXPLAIN和其他语句 语句返回一个 resource,如果查询出现错误则返回false。
对于其他类型的SQL语句,比如INSERT,UPDATE,DELETE,DROP,mysql_query()在执行成功时返回 TRUE,出错时返回 FALSE。
返回的结果资源应该传递给 mysql_fetch_array() 和其他函数来处理结果表,取出返回的数据。
假定查询成功,可以调用 mysql_num_rows() 来查看对应于 SELECT 语句返回了多少行,或者调用 mysql_affected_rows()来查看对应于 DELETE,INSERT,REPLACE 或 UPDATE语句影响到了多少行。
如果没有权限访问查询语句中引用的表时,mysql_query() 也会返回 false。
2、mysqli扩展相对于MySQL的优势:
--- 基于面向过程和面向对象的优势
--- 支持预处理语句
---支持事务
MySQLi扩展的安装:(widows环境下)
---配置php配置文件,开启php_mysqli.dll扩展
---配置extension_dir= 'F:/software/wamp/bin/php/php5.5.12/ext/' (‘ext目录所在位置’)
---重新启动服务器
3、验证MySQLi扩展是否开启:
1、phpinfo();
2、var_dump(extension_loaded('mysqli')); //检测扩展是否已经加载
3、print_r(get_loaded_extensions()); //得到当前已经开启的扩展
4、PDO与mysql的性能比较:pdo连接时间明显比mysql慢
header("Content-type: text/html; charset=utf-8"); //1.通过PDO连接数据库 $pStartTime=microtime(true); for($i=1;$i<=100;$i++){ $pdo=new PDO('mysql:host=localhost;dbname=test','root',''); } $pEndTime=microtime(true); $res1=$pEndTime-$pStartTime; //2.通过MySQL连接数据库 $mStartTime=microtime(true); for($i=1;$i<=100;$i++){ @mysql_connect('localhost','root',''); mysql_select_db('test'); } $mEndTime=microtime(true); $res2=$mEndTime-$mStartTime; echo $res1,'<br/>',$res2; echo '<hr/>'; if($res1>$res2){ echo 'PDO连接数据库时间是MySQL的'.round($res1/$res2).'倍'; }else{ echo 'MySQL连接数据库时间是PDO的'.round($res2/$res1).'倍'; }
本文为崔凯原创文章,转载无需和我联系,但请注明来自冷暖自知一抹茶ckhttp://www.cksite.cn