我一直收到此代码错误。
$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 数据库中的 AUTO-INCREMENTING 值,请注意以下事项。
除 DATETIME 字段外的所有字段在插入数据库时获取数组中最后一个元素的值。IE
ID = $LastName FirstName = $LastName MiddleName = $LastName LastName = $LastName 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 和数组?
这是一个错误还是错误的编码架构。