3 回答

TA貢獻1820條經驗 獲得超10個贊
從PHP中使用MySQL有三種流行的方法。這概述了PHP的一些特性/差異:選擇API:
(已棄用)mysql函數是程序性的,并使用手動轉義。
MySQLi是mysql函數的替代品,具有面向對象和過程版本。它支持準備好的陳述。
PDO(PHP數據對象)是一個通用的數據庫抽象層,在許多其他數據庫中支持MySQL。它提供準備好的語句,并在返回數據方面具有顯著的靈活性。
我建議將PDO與準備好的語句一起使用。它是一個設計良好的API,如果需要,可以讓您更輕松地移動到另一個數據庫(包括任何支持ODBC的數據庫)。

TA貢獻1848條經驗 獲得超2個贊
這些是訪問MySQL后端的不同API
在MySQL的是歷史API
該mysqli的是歷史API的新版本。它應該表現更好,并具有更好的功能集。此外,API是面向對象的。
PDO_MySQL是PDO的MySQL。PDO已經在PHP中引入,該項目旨在為所有數據庫訪問創建一個通用API,因此從理論上講,您應該能夠在不更改任何代碼的情況下在RDMS之間進行遷移(如果您在查詢中不使用特定的RDBM函數) ),也是面向對象的。
所以這取決于你想要生成什么樣的代碼。如果您更喜歡面向對象的圖層或普通函數......
我的建議是
PDO
庫MySQLi
MySQL的
我的感覺,mysql API可能會在將來的版本中被刪除PHP。

TA貢獻1872條經驗 獲得超4個贊
具體來說,MySQLi擴展提供了以下非常有用的優點,而不是舊的MySQL擴展。
OOP接口(除程序外)準備語句支持事務+存儲過程支持更高語法速度改進增強調試
PDO擴展
PHP Data Objects擴展是一個數據庫抽象層。具體來說,這不是MySQL接口,因為它為許多數據庫引擎提供驅動程序(當然包括MYSQL)。
PDO旨在提供一致的API,這意味著當數據庫引擎發生更改時,代碼更改以反映這應該是最小的。使用PDO時,只需更改您正在使用的驅動程序,您的代碼通常就可以在許多數據庫引擎中“正常工作”。
除了跨數據庫兼容之外,PDO還支持使用MySQL驅動程序的預處理語句,存儲過程等。
添加回答
舉報