5 回答

TA貢獻1993條經驗 獲得超6個贊
MySQL擴展:
不是在積極發展
被正式棄用的PHP 5.5(6月發布2013年)。
已完全刪除 PHP 7.0(2015年12月發布)
這意味著自2018年12月31日起,它將不存在于任何受支持的PHP版本中。目前,它只獲得安全更新。
缺少OO界面
不支持:
非阻塞,異步查詢
準備好的語句或參數化查詢
存儲過程
多個陳述
交易
“新”密碼驗證方法(MySQL 5.6中默認啟用; 5.7中要求)
MySQL 5.1中的所有功能
由于它已被棄用,因此使用它會使您的代碼不再適用于未來。
缺乏對預準備語句的支持尤為重要,因為它們提供了一種更清晰,更不容易出錯的方法來轉義和引用外部數據,而不是通過單獨的函數調用來手動轉義它。
請參閱SQL擴展的比較。

TA貢獻2041條經驗 獲得超4個贊
首先,讓我們從我們給大家的標準評論開始:
請不要
mysql_*
在新代碼中使用函數。它們不再維護,并且已被正式棄用。看到紅色的盒子?了解準備好的語句,并使用 PDO或 MySQLi -本文將幫助您確定哪些。如果您選擇PDO,這是一個很好的教程。
讓我們逐句逐句解釋:
它們不再維護,并且已被正式棄用
這意味著PHP社區正在逐漸放棄對這些非常舊的功能的支持。它們很可能不存在于PHP的未來(最新)版本中!繼續使用這些功能可能會破壞(不是那么)遠期的代碼。
新!- 從PHP 5.5開始, ext / mysql現已正式棄用!
較新的!在PHP 7中刪除了 ext / mysql 。
相反,你應該學習準備好的陳述
mysql_*
擴展不支持預準備語句,這是(除其他外)一個非常有效的SQL注入對策。它修復了MySQL依賴應用程序中的一個非常嚴重的漏洞,它允許攻擊者訪問您的腳本并對您的數據庫執行任何可能的查詢。有關更多信息,請參閱如何在PHP中阻止SQL注入?
看紅盒子?
當您轉到任何
mysql
功能手冊頁時,您會看到一個紅色框,說明它不應再使用了。使用PDO或MySQLi
有更好,更強大和精心構建的替代方案,PDO - PHP數據庫對象,提供完整的OOP方法進行數據庫交互,以及MySQLi,這是MySQL特定的改進。

TA貢獻1863條經驗 獲得超2個贊
該mysql_
功能:
已經過時了 - 他們不再維護了
不允許您輕松移動到另一個數據庫后端
因此,不支持準備好的陳述
鼓勵程序員使用串聯來構建查詢,從而導致SQL注入漏洞
添加回答
舉報