新的 mysqli 与 mysqli_connect

Posted

技术标签:

【中文标题】新的 mysqli 与 mysqli_connect【英文标题】:new mysqli vs mysqli_connect 【发布时间】:2013-03-20 10:00:57 【问题描述】:

新的mysqlimysqli_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的主要内容,如果未能解决你的问题,请参考以下文章

PHP数据库连接mysql与mysqli的区别与用法

在改造中调用 api 时响应消息未找到和响应代码 404

mysql_field_name 到新的 mysqli

我如何确定状态并在 PHP MySQL 中执行操作

新的 mysqli 连接在我的 Cpanel 中不起作用,但在我的计算机中起作用 [重复]

控制台:SyntaxError:位置 0 处的 JSON 中的意外标记 < [重复]