新的 mysqli 与 mysqli_connect
Posted
技术标签:
【中文标题】新的 mysqli 与 mysqli_connect【英文标题】:new mysqli vs mysqli_connect 【发布时间】:2013-03-20 10:00:57 【问题描述】:新的mysqli
和mysqli_connect
有什么区别?
我知道执行查询是不同的;
例如:mysqli->query()
和 mysqli_query()
为什么会有两种不同的类型,有什么区别?
【问题讨论】:
不,不是,我尝试用谷歌搜索,但我认为这里的人们的经验可以帮助我更好,并为我提供有关它的直接信息 【参考方案1】:一个用于过程式编程,另一个用于 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
【讨论】:
PHP 手册对使用其中任何一种的含义都不是很清楚... 最佳实践是什么?每次查询后重新创建连接?还是允许连接持续存在?【参考方案2】:就在@Hanky Panky 上。我还要添加 PHP 文档:
http://www.php.net/manual/en/mysqli.construct.php
注意:
仅面向 OO 语法:如果连接失败,仍会返回一个对象。到 检查连接是否失败,然后使用 mysqli_connect_error() 函数或 mysqli->connect_error 属性 和前面的例子一样。
所以错误处理只是其中一个区别。
【讨论】:
【参考方案3】:我刚刚发现了两者之间微妙但有趣的区别。
如果遇到mysqli_connect
的连接错误(如$connection = mysqli_connect()
),则不会将任何mysql 信息返回到$connection 变量。因此,您将无法使用myqli_errno($connection)
识别错误。
但是,如果您使用新的 mysqli(如 $connection = new mysqli()
)遇到连接错误,将返回 mysql 信息,您可以使用 $connection->connect_errno
检查错误。
知道这一点,我会选择新的 mysqli。
糟糕...刚看到 Rick Buczynski 的回答,发帖后才意识到我是在重申他所说的内容,但他的回复信息量更大。
【讨论】:
你的回答有点错误。见***.com/q/58808332/1839439以上是关于新的 mysqli 与 mysqli_connect的主要内容,如果未能解决你的问题,请参考以下文章