簡體   English   中英

mysqli_query($conn, $sql) 或 $conn->query($sql)

[英]mysqli_query($conn, $sql) or $conn->query($sql)

我是 Web 開發的新手,我目前沒有使用任何框架。

到目前為止,我一直在使用mysqli_query($conn, $sql)向 MySQL 服務器發送查詢。

最近我閱讀了另一種使用$conn - > query($sql)

我知道$conn->query($sql)是發送查詢的 OOP 方式,而mysqli_query($conn, $sql)是過程方法。

我還沒有學習面向對象的 PHP 但是,我將在進入框架之前很快學習它。

有人能告訴我在mysqli_query($conn, $sql)上使用$conn->query($sql)的優勢嗎? 是不是更安全? 還有別的嗎?

我知道 OOP 比 Procedural 更好,但我想從安全(主要)的角度了解主要優點!

兩者都不。

三點讓你直截了當:

  1. 沒有太多要“學習”的地方。 對象語法看起來很愚蠢:只是一個訪問方法或屬性的箭頭。 你肯定已經去了。
  2. 第二個選項只會讓你少打字

     mysqli_query($mysqli, $query); vs. $mysqli->query($query);
  3. 無論哪種方式,您都應該使用 PDO,而不是 mysqli

我知道 OOP 比 Procedural 好

這在這里是無關緊要的。 不要將面向對象編程與對象語法混淆。 前者是一個非常復雜的主題,需要數年時間才能學習,而且您幾乎不會很快就學會。 雖然對象語法只是一種語法——不多不少。 無需擔心太復雜,也沒有任何顯着的好處

“OOP 比過程式編程更好” - 我會說這取決於。 如果我們談論性能,那么是的,OOP 比過程式編程更高效且更有條理。 如果您正在構建一個大型復雜項目,那么 OOP 是您的最佳選擇。 但是,如果我們談論安全性,那么過程編程方法與 OOP 方法一樣安全。 特別是如果您使用 PDO。 當您使用 PDO 時,您使用命名占位符而不是將變量直接傳遞到查詢中,這有助於防止諸如 SQL 注入之類的攻擊。 如果你使用 PDO,你不需要自己清理你的輸入(消除額外的編碼),因為 PDO 會照顧到這一點。

我建議您從PDO開始學習,因為它遵循面向對象的編程風格,所以如果您從它開始,當您開始使用 OOPHP 編寫代碼時,您已經領先一步。 希望有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM