首頁  >  文章  >  後端開發  >  如何使用已棄用的「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_* 函數,以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