如何使用已棄用的「mysql_*」函數來重寫舊版 PHP 程式碼?

Susan Sarandon
發布: 2024-10-26 09:43:30
原創
808 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!