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