我一直在收到這段代碼的錯誤。PDO的bindParam,bindValue和foreach可能的錯誤
$Database = new Database('localhost','root','password','Db');
$Statement = $Database->prepare("INSERT INTO User VALUES(:ID,:FirstName,:MiddleName:LastName,:RegisteredDate")
$Array_Bind = array(
'ID'=>$ID,
'FirstName'=>$FirstName,
'MIddeName'=>$MiddleName,
'LastName'=>$LastName
'RegisteredDate'=>$Date
)
foreach($Array_Bind AS $Key=>$value){
$Statement->bindParam(':' .$Key, $value)
}
if($Statement->execute()){
echo 'Successfully inserted into the database';
}else{
echo 'could not insert into database';
};
下已經注意到如果$ ID(PrimaryKey的)是不是默認的MySQL數據庫自動增加值。
除DATETIME字段外的所有字段在插入數據庫時都獲取數組中最後一個元素的值。 即
ID = $名字 姓= $名字 中間名= $名字 名字= $名字 RegisteredDate = $ RegisteredDate
用於bindValue時輸出的相同的錯誤。
所以我結束了使用
if($Statement->execute($Array_Bind)){
echo 'Successfully inserted into the database';
}else{
echo 'could not insert into database';
};
質詢
建議使用execute($ array_Bind)假設所有數據已經消毒作爲對使用bindParam或bindValue這種情況?
如果不是有沒有辦法使用bindParam或bindValue和數組?
這是一個錯誤或錯誤的編碼體系結構。
他的問題遠沒有那個錯字 –
至少這是一個開始 – AdRock
當案件清楚並已解決時,不需要這樣的錯誤開始。 –