【发布时间】:2014-05-10 01:25:44
【问题描述】:
我收到此代码的错误。
$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 字段外的所有字段在插入数据库时获取数组中最后一个元素的值。 即
ID = $LastName 名字 = $LastName 中间名 = $LastName 姓氏 = $姓氏 注册日期 = $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?
If Not 有没有办法使用 bindParam 或 bindValue 和数组?
这是一个错误还是错误的编码架构。
【问题讨论】:
标签: php pdo bindvalue bindparam