PHP 中 mysql_ 函数的过时和最终删除引发了一个问题:它们可以无缝地替换为 mysqli_ 吗?虽然假设等价可能很诱人,但答案是肯定的。
值得庆幸的是,对于那些拥有大量使用 mysql_ 函数的现有代码的人来说,存在一个转换器工具(https://github.com/philip/MySQLConverterTool)可以自动化大部分转换过程。这可以提供即时功能,允许脚本按预期执行。
除了转换器工具提供的临时解决方案之外,谨慎的做法是迁移到面向对象数据库交互的方法论。这种方法具有多种优点,包括改进的代码组织和可维护性。
在 mysqli_ 中,建立连接涉及创建一个新的 mysqli 对象并将其分配给 PHP 变量。例如:
$mysqli = new mysqli($host, $username, $password, $database);
在打开连接之前确保启用 mysqli_ 的错误报告:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
所有 mysqli_ 函数现在都需要连接作为过程代码中的第一个参数或作为面向对象代码中的对象方法。对于执行查询,代码如下所示:
过程:
$result = mysqli_query($mysqli, $sql);
面向对象:
$result = $mysqli->query($sql);
mysqli_ 中的结果获取与 mysql_ 基本保持不变
过程式:
while ($row = mysqli_fetch_assoc($result))
面向对象:
while ($row = $result->fetch_assoc())
正确关闭连接至关重要,过程与mysql_中保持一致mysqli_:
过程式:
mysqli_close($mysqli);
面向对象:
$mysqli->close();
从 mysql_ 到 mysqli_ 的迁移涉及到转换所有相关的函数,包括连接关闭、结果释放、错误处理和行计数的函数。
请记住,虽然初始转换可能需要一些体力劳动,但采用面向对象的方法可以为您带来长期利益代码库。因此,虽然盲目地用 mysqli_ 替换 mysql_ 函数并不是一个理想的解决方案,但它可以成为迈向更现代、更可维护的 PHP 代码库的垫脚石。
以上是我可以在 PHP 代码中简单地将 `mysql_` 替换为 `mysqli_` 吗?的详细内容。更多信息请关注PHP中文网其他相关文章!