0
在下面,我會說$ val1。 $ val1也準備好了嗎?PDO上的變量/數組是否也執行準備好了?
$sql = "SELECT * FROM table WHERE col1=:var1 LIMIT 1";
$q = $conn->prepare($sql);
$q->execute(array(':var1'=>$val1));
在下面,我會說$ val1。 $ val1也準備好了嗎?PDO上的變量/數組是否也執行準備好了?
$sql = "SELECT * FROM table WHERE col1=:var1 LIMIT 1";
$q = $conn->prepare($sql);
$q->execute(array(':var1'=>$val1));
是的,它是「準備好」(你的方式)以及任何其他佔位符的價值。
否則在這種語法中就沒有意義。
沒有。它不是「準備好」的。它會在執行時被簡單地填充到查詢中。 – 2013-03-08 16:22:16
所以我需要檢查$ val1我自己的安全,以避免SQL注入? – 2013-03-08 16:23:47
沒有。這就是爲什麼你使用準備好的語句。數據庫庫將爲您處理任何注射問題。如果你在做'$ sql =「SELECT ... WHERE col1 = $ val1」',那麼是的,你必須自己逃脫。 – 2013-03-08 16:24:18