ana*_*rex 162 php mysql mysqli
哪个更好,MySQL还是MySQLi?为什么?我应该使用哪个?
我的意思不仅仅是在性能方面,还有其他相关功能.
Mar*_*son 109
如果你看看MySQL改进的扩展概述,它应该告诉你需要知道的关于两者之间差异的一切.
主要有用的功能是:
Gor*_*don 70
有一个专门用于帮助在mysql,mysqli和PDO之间进行选择的手册页
PHP团队建议使用mysqli或PDO_MySQL进行新开发:
建议使用mysqli或PDO_MySQL扩展.建议不要将旧的mysql扩展用于新开发.下面提供了详细的特征比较矩阵.所有三个扩展的整体性能被认为是大致相同的.虽然扩展的性能只占PHP Web请求总运行时间的一小部分.通常,影响低至0.1%.
该页面还有一个比较扩展API的功能矩阵.mysqli和mysql API之间的主要区别如下:
mysqli mysql
Development Status Active Maintenance only
Lifecycle Active Long Term Deprecation Announced*
Recommended Yes No
OOP API Yes No
Asynchronous Queries Yes No
Server-Side Prep. Statements Yes No
Stored Procedures Yes No
Multiple Statements Yes No
Transactions Yes No
MySQL 5.1+ functionality Yes No
Run Code Online (Sandbox Code Playgroud)
*http://news.php.net/php.internals/53799
还有一个额外的功能矩阵比较库(新的mysqlnd和libmysql)
以及一篇非常详尽的博客文章
cle*_*tus 15
我放弃了使用mysqli.它太不稳定了.我有使用mysqli崩溃PHP的查询,但使用mysql包工作得很好.此外,mysqli在LONGTEXT列上崩溃了.至少自2005年以来,这种错误已经以各种形式提出并且仍然存在.老实说,我喜欢使用准备好的语句,但mysqli只是不够可靠(并且似乎没有人愿意修复它).如果你真的想要准备好的陈述请与PDO一起使用.
Ros*_*oss 12
MySQLi代表MySQL的改进.它是MySQL绑定的面向对象的接口,使事情更容易使用.它还为准备好的语句提供支持(非常有用).如果您使用的是PHP 5,请使用MySQLi.
PDO更好的是; 它是一个不那么狡猾的界面,并提供与MySQLi相同的功能.
使用预准备语句很好,因为它消除了SQL注入的可能性; 使用服务器端预处理语句是不好的,因为它增加了往返次数.