新mysqli
和mysqli_connect
之间有什么区别?
我知道执行查询是不同的;
例如:mysqli->query()
和mysqli_query()
为什么有两种不同的类型,差异的需要是什么?
答案 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)的回答,并在发帖后意识到我在重申他所说的话,但他的回答更具参考价值。