区别:1、PDO应用在12种不同数据库中,而MysqLi只应用于MysqL数据库中;2、PDO关闭连接的方式为“$conn = null”,而MysqLi关闭连接的方式为“$conn->close()”或者“MysqLi_close()”。
本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。
PHP连接MysqL的方式之间有什么区别吗
在PHP5.3版本之后,想要连接数据库有两种方案,一种是通过MysqLi,另外外一种是通过PDO,而通过MysqLi来连接数据库也可也分为两种情况: MysqLi(面向对象),MysqLi(面向过程).
即三种方式:
1)PDO连接MysqL
2)MysqLi(面向对象)连接数据库
3)MysqLi(面向过程)连接数据库
(其实还存在一种连接方式:使用 MysqL 扩展。但该扩展在 2012 年开始不建议使用。)
PDO连接实例
可先通过PHPinfo()命令查看你的PHP是否已安装PDO(我用的是PHP7,默认是已经安装好了)
如果没有安装,参考网页:http://PHP.net/manual/en/pdo.installation.PHP
代码实例:
<?PHP $servername = localhost; $username = root; $password = root; try { $conn = new PDO(MysqL:host=$servername;dbname=jtsys, $username, $password); echo 连接成功; } catch(PDOException $e) { echo $e->getMessage(); } ?>
(使用时请注意更改数据库用户名和密码,以及所选则的数据库名(dbname)
MysqLi(面向对象)连接实例
可先通过PHPinfo()命令查看你的PHP是否已安装MysqLi(我用的是PHP7,默认是已经安装好了)
如果没有安装,参考网页:http://PHP.net/manual/en/MysqLi.installation.PHP
代码实例:
<?PHP $servername = localhost; $username = root; $password = root; // 创建连接 $conn = new MysqLi($servername, $username, $password); // 检测连接 if ($conn->connect_error) { die(连接失败: . $conn->connect_error); } $dbname=jtsys; MysqLi_select_db($conn,$dbname); echo 连接成功; ?>
MysqLi(面向过程)连接数据库
代码实例:
<?PHP $servername = localhost; $username = root; $password = root; // 创建连接 $conn = MysqLi_connect($servername, $username, $password); // 检测连接 if (!$conn) { die(Connection Failed: . MysqLi_connect_error()); } $dbname=jtsys; MysqLi_select_db($conn,$dbname); echo 连接成功; ?>
三者区别:
1.关闭连接的方式:
PDO:
$conn = null;
MysqLi (面向对象):
$conn->close();
MysqLi (面向过程):
MysqLi_close($conn);
- PDO 应用在 12 种不同数据库中, MysqLi 只针对 MysqL 数据库。
- 如果你的项目需要在多种数据库中切换,建议使用 PDO ,这样你只需要修改连接字符串和部门查询语句即可。 使用 MysqLi, 如果不同数据库,你需要重新编写所有代码,包括查询。
- 两者都是面向对象, 但 MysqLi 还提供了 API 接口。
- 两者都支持预处理语句。 预处理语句可以防止 sql 注入,对于 web 项目的安全性是非常重要的。
MysqLi 面向对象和面向过程的区别:
多PHP程序员不习惯面向对象bai编程,所以MysqLi类库提供了du这个方法供他们使用。这也是方便一些使zhi用MysqL扩展的用户快速迁移到MysqLi。实际上,MysqLi_query()内部是对面向对象调用过程的封装。
推荐学习:《PHP教程》