亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我不應該在PHP中使用mysql_ *函數?

為什么我不應該在PHP中使用mysql_ *函數?

MM們 2019-05-20 14:45:52
為什么一個人不應該使用mysql_*功能的技術原因是什么?(例如mysql_query(),mysql_connect()或mysql_real_escape_string())?即使他們在我的網站上工作,為什么還要使用其他東西?如果他們不在我的網站上工作,為什么我會收到錯誤
查看完整描述

5 回答

?
ibeautiful

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擴展的比較。


查看完整回答
反對 回復 2019-05-20
?
縹緲止盈

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特定的改進。


查看完整回答
反對 回復 2019-05-20
?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

mysql_功能:

  1. 已經過時了 - 他們不再維護了

  2. 不允許您輕松移動到另一個數據庫后端

  3. 因此,不支持準備好的陳述

  4. 鼓勵程序員使用串聯來構建查詢,從而導致SQL注入漏洞


查看完整回答
反對 回復 2019-05-20
  • 5 回答
  • 0 關注
  • 626 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號