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

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

MySQL,MySQLi和PDO有什么區別?

MySQL,MySQLi和PDO有什么區別?

浮云間 2019-09-20 17:04:49
MySQL,MySQLi和PDO有什么區別?哪一個最適合與PHP-MySQL一起使用?
查看完整描述

3 回答

?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

從PHP中使用MySQL有三種流行的方法。這概述了PHP的一些特性/差異:選擇API:


(已棄用)mysql函數是程序性的,并使用手動轉義。

MySQLi是mysql函數的替代品,具有面向對象和過程版本。它支持準備好的陳述。

PDO(PHP數據對象)是一個通用的數據庫抽象層,在許多其他數據庫中支持MySQL。它提供準備好的語句,并在返回數據方面具有顯著的靈活性。

我建議將PDO與準備好的語句一起使用。它是一個設計良好的API,如果需要,可以讓您更輕松地移動到另一個數據庫(包括任何支持ODBC的數據庫)。


查看完整回答
反對 回復 2019-09-20
?
慕尼黑5688855

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。


查看完整回答
反對 回復 2019-09-20
?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

具體來說,MySQLi擴展提供了以下非常有用的優點,而不是舊的MySQL擴展。

OOP接口(除程序外)準備語句支持事務+存儲過程支持更高語法速度改進增強調試

PDO擴展

PHP Data Objects擴展是一個數據庫抽象層。具體來說,這不是MySQL接口,因為它為許多數據庫引擎提供驅動程序(當然包括MYSQL)。

PDO旨在提供一致的API,這意味著當數據庫引擎發生更改時,代碼更改以反映這應該是最小的。使用PDO時,只需更改您正在使用的驅動程序,您的代碼通常就可以在許多數據庫引擎中“正常工作”。

除了跨數據庫兼容之外,PDO還支持使用MySQL驅動程序的預處理語句,存儲過程等。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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