2011-04-12 80 views
6

可能重复:
Advantages Of MySQLi over MySQLmysqli和mysql的区别?

我建立一个庞大的数据库,不知道这是最好的使用?

我现在正在清理我的价值观并逃避角色的安全性,但我想知道这些mysql querys在php中的不同好处?

谢谢。

+2

花费不到一分钟的时间在http://stackoverflow.com/search?q=[php]+mysql+mysqli中找到三个副本。在提问之前使用搜索功能。 – Gordon 2011-04-12 21:43:32

回答

15

在较旧的MySQL函数中使用MySQLi。 “我”代表“改进”。改进列表可在the docs中找到。

+0

我已经写了一个用户创建,验证和登录与普通的mysql函数,这是一个很大的好处,以改变它的安全明智吗? – Basic 2011-04-12 21:21:59

+0

最主要的改进就是它也是面向对象的,@Basic,它可能已经足够了,但是你会生活在过去的我的朋友,你需要与最新的库保持同步,以便能够充分利用最新功能以及关键更新。 – RobertPitt 2011-04-12 21:22:18

+1

旧的'mysql_ *'函数也可能不再使用。 – ceejayoz 2011-04-13 00:03:17

2

为什么不使用PDO呢?您可以在其他功能中准备好语句,如果您决定在某一天移动到另一个数据库,这将是一个明智的决定。

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

如果你坚持使用上面提到的选项之一,库MySQLi基本上是一个更面向对象方法的标准MySQL扩展。大多数情况下,它们在功能方面都是一样的。如果你正在构建一个基于OOP的应用程序,MySQLi可能会是一个更明智,更一致的选择。

2

首先,您最好在您的代码和PHP提供的数据库函数之间使用PDO(如Lior建议的)或中间层(由您编码),以便您可以轻松地使用mysqli或任何您喜欢的方式更改mysql而无需重新编辑您的整个代码。

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

1

从我的角度来看,主要的区别(改进)是mysqli让你执行多个查询;这又可以允许您使用out参数或返回结果集来执行存储过程(并从中检索结果)。

我同意其他人使用PDO是一个更好的选择。

0

对于所有那些说使用PDO。仅仅是为了准备好的陈述?因为you can do prepared statements in mySQLi without PDO。只是FYI。

+2

是的,但你有没有试过在生产中使用它们?他们是一个可用性的噩梦。 PDO的界面只是*更好*。 – Charles 2011-04-12 21:41:28