现在是切换的好时机,因为 PHP 7.0ext/mysql从核心中删除了这些功能。
考虑以下遗留代码
$res = mysql_query($sql);
这些mysql_函数是惰性的,因为它会使用任何打开的连接。但mysqli_不仅不是懒惰,它是一个对象,而不是连接资源(这是mysql_connect()会返回的)。在此处查看这些行以连接到数据库
$mysqli = new mysqli('host', 'username', 'password', 'db');
$mysqli = mysqli_connect('host', 'username', 'password', 'db');
他们都给你同样的东西......
返回一个表示与 MySQL 服务器的连接的对象。
是的,这是正确的。甚至程序连接函数也返回一个对象。直接使用它的最简单方法是对象形式
$mysqli->query($sql);
过程函数只是对此的包装。但他们并不懒惰。查看差异
mysqli_query($mysqli, $sql);
其中最大的问题(为什么简单的查找和替换mysql_失败mysqli_)是大多数mysqli_函数都要求您将连接对象作为第一个参数传递。同样重要的是要注意结果也是对象(mysqli_result类),尽管它们的过程对应物只需要结果集,因此您可以简单地查找/替换它们。
为了完整起见,还有另一个不太常见的问题(这确实是旧代码):mysql_result。此功能在mysqli_. 您应该切换到完整的行返回函数,例如mysqli_fetch_assoc($result)