首頁  >  文章  >  資料庫  >  升級 PHP 後如何修正「Deprecated mysql_* Functions」錯誤?

升級 PHP 後如何修正「Deprecated mysql_* Functions」錯誤?

Barbara Streisand
Barbara Streisand原創
2024-11-09 10:25:02897瀏覽

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn