MySQL mysqli还是PDO – 到底哪个更优?
在PHP中与MySQL进行交互的最常用的API是mysqli和PDO。但是很多人却不确定哪一个选用。下面将会列出各自的优缺点,希望可以帮助你做出更好的选择。
阅读更多:MySQL 教程
MySQLi的优缺点
优点
- 面向对象编程更容易 – 与之相比,MySQLi支持面向对象编程,这是由于MySQLi附带了许多与面向对象编程相关的功能和特性。
-
更好的支持 – MySQLi比较新,并且在许多主机上已经默认安装。这意味着在运行环境上支持MySQLi时,使用此API时,通常会获得更好的支持。
-
更高的性能 – MySQLi中可以使用预处理语句。预处理语句的一个主要优点是可以减少服务器端和客户端之间的数据传输量,从而提高了性能。
-
较少的安全漏洞 – 在代码中避免SQL注入是一个重要的安全考虑因素。MySQLi提供了一些特性以使之更简单。
缺点
-
MySQLi只能与MySQL数据库一起使用。如果您需要同时使用多个不同类型的数据库, 您需要使用另一个API,例如PDO。
-
使用MySQLi时,将您的PHP代码与MySQL服务器进行强耦合,这可能会使部署变得更加困难。
PDO的优缺点
优点
-
多种数据库管理系统的适用 – PDO可以用于MySQL、SQLite、Oracle和其他许多数据库系统。
-
更好的OOP支持 – 与MySQLi一样,PDO支持面向对象编程模式。
-
更少的安全漏洞 – PDO使用预处理语句来减少SQL注入漏洞。
-
更好的可移植性 – 当您决定改变使用的数据库时,PDO便不会让您失望了。因为PDO代码不会与特定的数据库服务器绑定到一起,这意味着你可以更容易地更改应用程序与哪种数据库打交道。
缺点
-
性能较差 – PDO的性能低于MySQLi。原因是PDO需要预处理查询,这需要额外的时间来处理。
-
不支持MySQL的所有特性。
总结
选择mysqli or PDO,最终的决定取决于你的需要。如果你需要更好地支持MySQL,并且希望从更好的性能中获得益处,则mysqli是最适合你的选择。如果您需要更好的可移植性和更好的OOP支持,那么PDO是为您而设计的。无论哪种方式,都可以通过使用预处理语句来减少安全漏洞的发生,这也是非常重要的。