3 回答

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

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

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊
具體來說,MySQLi擴(kuò)展提供了以下非常有用的優(yōu)點(diǎn),而不是舊的MySQL擴(kuò)展。
OOP接口(除程序外)準(zhǔn)備語句支持事務(wù)+存儲(chǔ)過程支持更高語法速度改進(jìn)增強(qiáng)調(diào)試
PDO擴(kuò)展
PHP Data Objects擴(kuò)展是一個(gè)數(shù)據(jù)庫抽象層。具體來說,這不是MySQL接口,因?yàn)樗鼮樵S多數(shù)據(jù)庫引擎提供驅(qū)動(dòng)程序(當(dāng)然包括MYSQL)。
PDO旨在提供一致的API,這意味著當(dāng)數(shù)據(jù)庫引擎發(fā)生更改時(shí),代碼更改以反映這應(yīng)該是最小的。使用PDO時(shí),只需更改您正在使用的驅(qū)動(dòng)程序,您的代碼通常就可以在許多數(shù)據(jù)庫引擎中“正常工作”。
除了跨數(shù)據(jù)庫兼容之外,PDO還支持使用MySQL驅(qū)動(dòng)程序的預(yù)處理語句,存儲(chǔ)過程等。
添加回答
舉報(bào)