新mysqli vs mysqli_connect

时间:2013-03-29 16:51:22

标签: php mysqli

mysqlimysqli_connect之间有什么区别? 我知道执行查询是不同的;
例如:mysqli->query()mysqli_query()
为什么有两种不同的类型,差异的需要是什么?

3 个答案:

答案 0 :(得分:37)

一个用于程序样式编程,另一个用于OOP样式编程。两者都有同样的目的; Open a new connection to the MySQL server

OOP样式用法

$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

程序样式用法

$link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');

参考:PHP Manual

答案 1 :(得分:9)

正好在@Hanky Panky。我还要添加PHP文档:

http://www.php.net/manual/en/mysqli.construct.php

  

注意:

     

仅限OO语法:如果连接失败,仍会返回对象。至   检查连接是否失败然后使用   mysqli_connect_error()函数或mysqli-> connect_error属性   如前面的例子所示。

因此错误处理只是一个区别。

答案 2 :(得分:0)

我只是发现两者之间有细微但有趣的区别。

如果遇到mysqli_connect的连接错误(如$connection = mysqli_connect()),则不会将$ mysql信息返回到$ connection变量。因此,您将无法使用myqli_errno($connection)来识别错误。

但是,如果您使用新的mysqli(例如$connection = new mysqli())遇到连接错误,则会返回mysql信息,您可以使用$connection->connect_errno来检查错误。

知道这一点后,我会选择新的mysqli。

糟糕...刚刚看到里克·布钦斯基(Rick Buczynski)的回答,并在发帖后意识到我在重申他所说的话,但他的回答更具参考价值。

相关问题