首页  >  文章  >  后端开发  >  如何使用已弃用的“mysql_*”函数重写旧版 PHP 代码?

如何使用已弃用的“mysql_*”函数重写旧版 PHP 代码?

Susan Sarandon
Susan Sarandon原创
2024-10-26 09:43:30809浏览

How can I rewrite legacy PHP code using deprecated `mysql_*` functions?

使用已弃用的 mysql_* 函数重写旧版 PHP 代码

正如您所发现的,由于安全原因,PHP 中的 mysql_* 函数已被弃用和稳定性问题。要有效地重写代码,请考虑以下准则:

1.切换到 PDO 或准备语句:

用 PDO 或准备语句替换 mysql_* 函数,以提高安全性并避免 SQL 注入漏洞。

2.重新配置数据库连接:

应使用连接字符串而不是单个参数来建立数据库连接。例如:

<code class="php">$db = new PDO('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');</code>

3。删除不必要的构造函数和析构函数:

PDO 不再需要 __construct 和 __destruct 等函数。 PDO 在内部处理数据库连接和清理。

4.简化数据库选择:

要使用 PDO 选择数据库,请使用 exec 方法:

<code class="php">$db->exec("USE " . $database);</code>

5.考虑数据库类扩展:

如果需要,您可以从 PDO 扩展以创建具有自定义功能的自己的数据库类。

示例重写:

您的原始脚本可以使用 PDO 重写如下:

<code class="php">class dbConn extends PDO
{
    public function connect()
    {
        try {
            parent::__construct('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');
        } catch (PDOException $e) {
            die('Database connection failed: ' . $e->getMessage());
        }
    }

    public function selectDb($database)
    {
        $this->exec("USE " . $database);
        $this->query("SET NAMES 'utf8'");
    }
}</code>

请记住,切换到 PDO 或准备好的语句不仅可以增强安全性,还可以简化代码维护并提高性能。

以上是如何使用已弃用的“mysql_*”函数重写旧版 PHP 代码?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn