2012-01-23 32 views
2

我想知道在PHP PDO投變量和常量PDO :: PARAM_ *PDO :: PARAM_ *與鑄造

實例之間的真正區別:

$stmt->bindValue(':name', $name, PDO::PARAM_INT); 

OR

$stmt->bindValue(':name', (int)$name); 

回答

3

(使用PDO::PARAM_*)前一種方法意味着如果$name不符合指定的類型(在這種情況下,integer型)您的查詢就會失敗。它在綁定之前驗證類型。

後者(不提供第三個參數)沒有此類驗證,所以如果您沒有將$name作爲整數投射,則查詢仍然會執行。