mysqli和mysql之间的区别是什么?

5

可能是重复问题:
MySQLi相对于MySQL的优势

我正在构建一个大型数据库,想知道应该使用哪个?

我现在正在对我的值进行清理并转义字符以提高安全性,但我想知道php中这些mysql查询的不同好处是什么?

谢谢。


2
在 http://stackoverflow.com/search?q=[php]+mysql+mysqli 中找到了三个重复的问题,仅用不到一分钟的时间。在提问前请使用搜索功能。 - Gordon
5个回答

14

建议使用MySQLi替代较旧的MySQL函数。这里的“i”代表“提升”,相关的改进列表可以在文档中找到。


我已经使用普通的mysql函数编写了用户创建、验证和登录功能,从安全角度来看,更改它是否有很大的好处? - Basic
主要的改进在于它也是面向对象的,@Basic,这可能足够了,但你会发现自己停留在过去,朋友,你需要跟上最新的库,以便能够充分利用最新的功能和关键更新。 - RobertPitt
1
旧的 mysql_* 函数也可能被弃用。 - ceejayoz

2
为什么不使用PDO呢?你可以得到预处理语句等其他功能的好处,如果你决定将来转移到另一个数据库,这将证明是一个明智的决定。

http://php.net/manual/en/book.pdo.php

如果您坚持使用上述选项之一,MySQLi基本上是标准mysql扩展的更面向对象的方法。就大多数情况而言,它们在功能上基本相同。如果您正在构建基于OOP的应用程序,则MySQLi可能是更明智、更一致的选择。

2

首先,你最好使用PDO(如Lior建议的那样)或一个中间层(由你编写),将你的代码与PHP提供的数据库函数隔离开来,这样你就可以轻松地更改mysql为mysqli或任何你喜欢的东西,而不必重新编辑整个代码。

至于差异,mysqli有更多的功能(有一堆新功能),并且也是面向对象的。


1

从我的角度来看,mysqli的主要不同之处(改进)在于它允许你执行多个查询;这反过来又使你能够执行(和检索)带有out参数或返回结果集的存储过程。

我确实同意其他人的看法,使用PDO是更好的选择。


0

2
是的,但你曾经尝试在生产中使用它们吗?它们很难用。PDO接口只是更好。 - Charles

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接