2016-09-16 52 views
-1
$sql = $pdo->prepare("INSERT INTO test(name,city)VALUES(:vary,'china')"); 
$sql->bindParam('vary',$vary, PDO::PARAM_STR); 
$vary=1234; 
$sql->execute(); 

這應該給錯誤,因爲我沒有使用字符串,對於:vary參數。但這工作正常,並在表test中插入一行。有人可以解釋爲什麼沒有錯誤,我發現同樣的問題上stackoverflow PHP PDO::bindParam() data types.. how does it work?但我仍然困惑,有人可以請更好解釋..PDO :: PARAM_STR和PDO :: PARAM_INT不會給出錯誤

+0

*「不給錯誤」* - 你在檢查他們嗎? http://php.net/manual/en/pdo.error-handling.php --- http://php.net/manual/en/function.error-reporting.php –

+0

@ Fred-ii- IT插入一個排在表中,所以它工作正常 – beginner

+0

列的類型是什麼?如果它是varchar,那麼它不會拋出錯誤,因爲'$ vary'不包含字符串字符。如果你的專欄是'int',那麼這將是一個不同的故事。 –

回答

1

這不會給你任何錯誤,因爲PHP的類型雜耍。換句話說:當您嘗試將字符串用作PHP時,PHP將整數1234轉換爲字符串1234

在PHP手冊中瞭解更多關於type juggling的信息。