PHP? PDO或mySQLi

时间:2015-04-11 19:41:25

标签: php mysql pdo mysqli

只需编写PHP网站并使用mySqli进行数据库连接。真的很享受它,因为我可以使用Prepare语句然后执行$result = $stmt->get_result();将结果加载到关联的数组中。但是,最好是时候将几页和数据库上传到托管站点以测试速度,并发现它不支持$stmt->get_result();命令,让它需要使用我的主机所做的mysqlnd驱动程序不支持。

对此进行调查也不是许多主机提供商。现在,当我启动网站时,我回头看了一些旧的PHP代码,显然我以前使用的正常mySql代码已经过时,并且在互联网上被告知使用mySQLi只是为了发现对此的支持正在下降到?!所以它会看到,那么最好使用的mySql连接是什么?

2 个答案:

答案 0 :(得分:5)

我根本不会使用任何旧的mysql连接器。由于存在巨大的安全漏洞,它们已被弃用。至于您是否要使用mysqliPDO使用预准备语句,这是一个选择问题;他们都非常安全。 mysqli只要你使用准备好的陈述并且不依赖于逃避变量(这是一个巨大的痛苦并且容易犯错误,因此不那么安全),这是好的。

使用PDO的优点是更容易在不同的数据库类型之间移动(例如,如果您想使用Oracle或SQL Server或PostreSQL),它更容易进行转换,而且它更多如果你喜欢上课,那就太强大了。在此网站上,您通常会找到更多喜欢PDO的人。

同样支持mysqlnd?请参阅以下官方网站上的文档:

  

PHP 5.4默认使用mysqlnd

     

从PHP 5.4开始,mysqlnd库默认为php.net编译时   到所有PHP MySQL扩展。此外,php.net Windows团队正在使用   自mysqlnd成为官方PHP Windows发行版的mysqlnd   在PHP 5.3中可用

换句话说,那些网络主机提供商落后于时代。你可能想找一个更好的。

答案 1 :(得分:2)

模糊的问题。但考虑到标题。 mysqli和PDO是一回事。从某种意义上讲,两者几乎相同,PDO与平台无关,但mysqli仅适用于mysql数据库引擎。如果您不打算像某些SaaS应用程序那样制作企业级应用程序。 mysqli的

如果您的应用程序始终是PHP,为什么要使用PDO。使用它没有多大好处。

我不同意暗示mysqli不那么安全。 PDO和mysli都可以有非准备好的查询。两者都同样安全。

PDO有一个好处,在sprepared语句中命名参数。所以PDO领先一步。

哟可能喜欢这篇文章。 pdo-vs-mysqli-which-should-you-use