沒有什麼區別
:username
一個僅僅是通過PDO支持的語法糖,它就會在內部或者與文字取代?
或轉義數據取決於設置(PDO::ATTR_EMULATE_PREPARES
一)
這是一個廣泛傳播的觀點,命名佔位符更具可讀性。但是,在我看來,他們只會讓代碼不必要地膨脹,而根本不增加可讀性。重複相同的字段名稱六次不會使代碼可讀。如果在查詢中有超過3-5個佔位符,現在是時候考慮一些自動化,一個循環。
由於sachleen
在評論中指出,唯一的區別是綁定數據的可能順序。
隨着你必須遵循嚴格的順序,同時與指定的佔位符,你可以按任何順序將它們綁定規則?
佔位符:
$stm = $pdo->prepare("SELECT name FROM table WHERE name=? AND age=?");
$stm->execute(array($name,$age)); // strict order matching one in the query
但
$stm = $pdo->prepare("SELECT name FROM table WHERE name=:name AND age=:age");
$stm->execute(array(":age"=>$age,":name"=>$name)); // whatever order
第一個依靠值的順序填寫'?'。第二個數組中的順序無關緊要。 – sachleen 2013-04-28 17:28:19
@Rio你能否停止發佈要求語言輔導或手動閱讀替代品的問題? – mario 2013-04-28 17:36:53
Aw @mario,不錯':-)'。我同意OP可以首先搜索這些問題(所以近距離投票是有道理的),否則,這是一個很好的,明確的問題。 – halfer 2013-04-28 18:01:53