顯然沒有SQL注入的威脅,但是如果沒有變量插入到準備好的語句中,使用準備語句而不是query()
是否有任何性能考慮因素?應該準備好的語句曾經被使用沒有佔位符
$sql='SELECT t1.a,t1.b,t2.c FROM t1 INNER JOIN t2 ON t2.id=t1.t2_id';
$stmt=$db->prepare($sql);
while(true) {
...
//Should this be used
$stmt->execute();
//or this, and get rid of the above prepared statement?
$rs=$db->query($sql);
$rs=$stmt->fetchAll();
...
}
編輯。 lonesomeday的和你的常識的答案是衝突的,但都是正確的,因爲我沒有說明我是否正在使用仿真模式。然而,我並不認爲在這一點上從根本上編輯原始問題是合適的,並且希望我可以同時選擇兩種方法......
你說你正在使用'PDO :: ATTR_EMULATE_PREPARES => false',所以你沒有使用仿真模式。 –
@YourCommonSense我認識到我沒有使用仿真模式,但我在原文中沒有這麼說。 – user1032531