升级 PHP 后如何修复'Deprecated mysql_* Functions”错误?

Barbara Streisand
发布: 2024-11-09 10:25:02
原创
880 人浏览过

How to Fix

PHP 升级后的错误处理:过时的 mysql_* 函数

正如您在从 PHP 5.2 升级到 5.5 时发现的那样,您的一些PHP 代码片段遇到与已弃用或过时的 mysql_* 函数相关的错误。让我们探讨这些问题并提供解决方案。

已弃用的 mysql_real_escape_string() 函数

mysql_real_escape_string() 函数用于防止 SQL 注入攻击。然而,它在较新版本的 PHP 中已被弃用,取而代之的是更安全的替代方案。

解决方案: 将 mysql_real_escape_string() 替换为 mysqli_real_escape_string() 以确保持续的可靠性。

mysqli_real_escape_string() 的参数数量不正确

mysqli_real_escape_string() 函数需要两个参数:连接资源和要转义的字符串。在您的示例中,您仅提供一个参数。

解决方案: 建立与数据库的连接并将连接资源传递给 mysqli_real_escape_string() 作为第一个参数。建立连接的语法如下所示:

<code class="php">$connection = mysqli_connect("host", "my_user", "my_password", "my_db");</code>
登录后复制

替代选项:数据库对象

您可以使用而不是每次手动传入连接资源,一个数据库对象来简化这个过程。这种方法涉及如下设置数据库对象:

<code class="php">$mysqli = new mysqli("host", "my_user", "my_password", "my_db");</code>
登录后复制

创建数据库对象后,您可以使用其内置函数来执行数据库操作,而无需显式传入连接资源。例如:

<code class="php">$result = $mysqli->query("SELECT * FROM login WHERE username = '{$username}' AND password = '{$password}' AND status=1");</code>
登录后复制

以上是升级 PHP 后如何修复'Deprecated mysql_* Functions”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板