簡體   English   中英

這兩個代碼有什么區別

[英]What is the difference between these two codes

我對這兩個代碼塊進行了編碼,但是它們似乎做的相同。 我不知道您何時應該使用其中的每一種。

$query= $db->query("SELECT * FROM forum_table WHERE forum_id = '$id'");

$sql="SELECT * FROM forum_table WHERE forum_id = '$id'";
if ($query = $db->prepare($sql))
$query->execute();

我不知道這些有什么不同

好吧,如果

$query= $db->query("SELECT * FROM forum_table WHERE forum_id = '$id'");

這是非常簡單且眾所周知的,它是直接按原樣執行的查詢,沒有多余的魔力。

$sql="SELECT * FROM forum_table WHERE forum_id = '$id'";
if ($query = $db->prepare($sql))
$query->execute();

在第二段代碼中,您使用了相同的查詢,但是在執行之前已准備好查詢(這不是正確的方法,即您沒有讓占位符將參數綁定到該占位符,因此建議以及通過使用准備好的語句中的占位符將參數綁定到預留位置的方式,稍后在實際執行查詢之前實際准備好一個模板,這在很多方面都有幫助。 准備的語句減少了解析時間,因為對查詢的准備僅執行一次(盡管該語句執行了多次)。 注意:最佳做法是將參數綁定到prepare語句中,這樣,如果查詢必須使用不同的參數多次運行。只有綁定參數可以最大程度地減少服務器的帶寬,因為您每次只需要發送參數,而不是每次發送參數。整個查詢。 最后但並非最不重要的一點是,如果將參數綁定到SQL注入上,則Prepared語句非常有用。

首先,這兩個語句完全相同,因此實際上沒有區別。

暗示第二個塊發生了非常不同的事情。

准備好的陳述

至於何時使用另一個..總是使用准備好的語句

暫無
暫無

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

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