PHP连接MySQL数据库的三种方式实例分析_php技巧_脚本之家

by admin on 2020年5月5日

PHP 7 正式发布下载:

WordPress
开发者一直致力于让WordPress可以运行于更多的主机环境中,可以让用户自由地选择虚拟主机。然而时过境迁,现在的虚拟主机环境变化了许多,为了更好地运行WordPress,开发团队决定改变策略:从WordPress
3.2开始,将不再支持PHP 4和MySQL 4主机环境。
首先要说明的是,即将于2010年底发布的WordPress 3.1,仍将支持PHP
4环境,也将是最后一个支持PHP 4的版本。 计划于2011年上半年发布的WordPress
3.2,所需要的PHP最低版本将是5.2。为什么选择PHP
5.2?根据调查显示,大部分用户所使用的主机都高于这个版本,而且包括了 PHP5
早期版本所没有的重要功能。同时,Drupal和Joomla下一版本所需要的PHP最低版本也是PHP5.2。
根据调查,目前只有11%的用户,所使用的是PHP
4环境。目前的大部分主机都支持PHP 5.2,有些同时支持PHP
4和PHP5的主机,需要你在主机控制系统里激活PHP 5.2即可。因此,相信到
WordPress 3.2 发布之时,使用PHP 4的用户将进一步减少。 WordPress
3.1仍然可以同时在MySQL 4环境下运行。目前仍有6%的用户使用MySQL
4。在WordPress 3.2及以后版本中,所需要的MySQL最低版本MySQL 5.0.15。
因此,如果你所使用的主机不支持PHP 5.2及MySQL
5.0.15,你将无法升级到WordPress
3.2。WordPress内置的更新功能也将阻止你升级。如果你不确定你的主机是否能够支持将来的WordPress
3.2,你可以下载这个Health
Check插件测试一下。如果你的主机不支持,那就应该尽早考虑换一个支持WordPress
3.2的新主机。随着运行环境的提升,WordPress也将会给我们带来一些新的功能,新的体验。

本文实例讲述了PHP连接MySQL数据库的三种方式。分享给大家供大家参考,具体如下:

  •  

PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 、PHP的mysqli扩展
、PHP数据对象
,下面针对以上三种连接方式做下总结,以备在不同场景下选出最优方案。

暂未有官方说明,详细改进请看:

澳门新葡亰网址下载,PHP的MySQL扩展是设计开发允许php应用与MySQL数据库交互的早期扩展。MySQL扩展提供了一个面向过程的接口,并且是针对MySQL4.1.3或者更早版本设计的。因此这个扩展虽然可以与MySQL4.1.3或更新的数据库服务端进行交互,但并不支持后期MySQL服务端提供的一些特性。由于太古老,又不安全,所以已被后来的mysqli完全取代;

PHP 7.0.0 包含最新版本的 Zend Engine,包括以下特性:

PHP的mysqli扩展,我们有时称之为MySQL增强扩展,可以用于使用
MySQL4.1.3或更新版本中新的高级特性。其特点为:面向对象接口
、prepared语句支持、多语句执行支持、事务支持
、增强的调试能力、嵌入式服务支持
、预处理方式完全解决了sql注入的问题。不过其也有缺点,就是只支持mysql数据库。如果你要是不操作其他的数据库,这无疑是最好的选择。

  • 提升性能:PHP 7 速度是 PHP 5.6 的两倍

  • 支持 64 位

  • 许多重大错误可以进行异常处理

  • 移除了旧的和不支持的 SAPIs 和扩展

  • null 合并操作符(??)

  • 结合比较运算符 (<=>)

  • 标量类型声明

  • 匿名类

PDO是PHP Data
Objects的缩写,是PHP应用中的一个数据库抽象层规范。PDO提供了一个统一的API接口可以使得你的PHP应用不去关心具体要连接的数据库服务器系统类型,也就是说,如果你使用PDO的API,可以在任何需要的时候无缝切换数据库服务器,比如从Oracle
到MySQL,仅仅需要修改很少的PHP代码。其功能类似于JDBC、ODBC、DBI之类接口。同样,其也解决了sql注入问题,有很好的安全性。不过他也有缺点,某些多语句执行查询不支持。

文章转载自:开源中国社区 []    

官文对于三者之间也做了列表性的比较:

PHP的mysqli扩展 PDO PHP的mysql扩展 引入的PHP版本 5.0 5.0 3.0之前
PHP5.x是否包含 是 是 是 MySQL开发状态 活跃 在PHP5.3中活跃 仅维护
在MySQL新项目中的建议使用程度 建议 – 首选 建议 不建议 API的字符集支持 是
是 否 服务端prepare语句的支持情况 是 是 否 客户端prepare语句的支持情况
否 是 否 存储过程支持情况 是 是 否 多语句执行支持情况 是 大多数 否
是否支持所有MySQL4.1以上功能 是 大多数 否

从官方给出的这份结果上来看,优先推荐msqli,其次是PDO
。而“民间”给出的结果很多是倾向于使用PDO,因为其不担有跨库的优点,更有读写速度快的特点。

1.PHP与Mysql扩展(本扩展自 PHP 5.5.0
起已废弃,并在将来会被移除),PHP原生的方式去连接数据库,是面向过程的

 '127.0.0.1:3306', 'db' => 'test', 'db_user' => 'root', 'db_pwd' => 'root', );$mysql_conn = @mysql_connect($mysql_conf['host'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);if  { die("could not connect to the database:n" . mysql_error;//诊断连接错误}mysql_query;//编码转化$select_db = mysql_select_db;if  { die("could not connect to the db:n" . mysql_error;}$sql = "select * from user;";$res = mysql_query { die("could get the res:n" . mysql_error;}while ($row = mysql_fetch_assoc { print_r;}mysql_close;?>

2.PHP与Mysqli扩展,面向过程、对象

 '127.0.0.1:3306', 'db' => 'test', 'db_user' => 'root', 'db_pwd' => 'joshua317', );$mysqli = @new mysqli($mysql_conf['host'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);if ($mysqli->connect_errno) { die("could not connect to the database:n" . $mysqli->connect_error);//诊断连接错误}$mysqli->query;//编码转化$select_db = $mysqli->select_db;if  { die("could not connect to the db:n" . $mysqli->error);}$sql = "select uid from user where name = 'joshua';";$res = $mysqli->query { die("sql error:n" . $mysqli->error);} while ($row = $res->fetch_assoc; }$res->free;?>

3.PHP与PDO扩展,面向过程、对象

 '127.0.0.1:3306', 'db' => 'test', 'db_user' => 'root', 'db_pwd' => 'joshua317', );$pdo = new PDO("mysql:host=" . $mysql_conf['host'] . ";dbname=" . $mysql_conf['db'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);//创建一个pdo对象$pdo->exec;$sql = "select * from user where name = ?";$stmt = $pdo->prepare;$stmt->bindValue(1, 'joshua', PDO::PARAM_STR);$rs = $stmt->execute { // PDO::FETCH_ASSOC 关联数组形式 // PDO::FETCH_NUM 数字索引数组形式 while ($row = $stmt->fetch { var_dump; }}$pdo = null;//关闭连接?>

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《php字符串用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图