【发布时间】:2011-08-04 05:55:43
【问题描述】:
我正在构建一个大型数据库,想知道哪个最好用?
我现在正在清理我的值并转义字符以确保安全,但我想知道这些 mysql 查询在 php 中的不同好处?
谢谢。
【问题讨论】:
-
不到一分钟就在stackoverflow.com/search?q=[php]+mysql+mysqli 中找到了三个重复项。提问前使用搜索功能。
我正在构建一个大型数据库,想知道哪个最好用?
我现在正在清理我的值并转义字符以确保安全,但我想知道这些 mysql 查询在 php 中的不同好处?
谢谢。
【问题讨论】:
在旧的 MySQL 函数上使用 MySQLi。 “i”代表“改进”。改进列表见the docs。
【讨论】:
mysql_* 函数也可能最终被弃用。
首先,您最好在您的代码和 PHP 提供的数据库函数之间使用 PDO(如 Lior 建议的那样)或中间层(由您编写),这样您就可以轻松地使用 mysqli 或任何您喜欢的方式更改 mysql,而无需重新编辑你的整个代码。
就区别而言,mysqli的功能更多(有一堆新功能),而且也是面向对象的。
【讨论】:
为什么不改用 PDO?您可以从那里的其他功能中获得准备好的语句的好处,如果您决定有一天迁移到另一个数据库,这将被证明是一个明智的决定。
http://php.net/manual/en/book.pdo.php
如果您坚持使用上述选项之一,MySQLi 基本上是标准 mysql 扩展的一种更面向对象的方法。在大多数情况下,它们在功能方面是相同的。如果您正在构建基于 OOP 的应用程序,MySQLi 可能是更明智、更一致的选择。
【讨论】:
在我看来,主要区别(改进)是 mysqli 允许您执行多个查询;这反过来又允许您使用out 参数或返回结果集来执行(并从中检索结果)存储过程。
我同意其他人的观点,虽然使用 PDO 是更好的选择。
【讨论】:
对于所有说要使用 PDO 的人。它仅适用于准备好的陈述吗?因为you can do prepared statements in mySQLi without PDO。仅供参考。
【讨论】: