【发布时间】:2014-03-13 21:59:40
【问题描述】:
请帮我解决以下错误:
ERROR:SQLSTATE[42000]: 语法错误或访问冲突:1064 你有 SQL 语法错误;检查与您对应的手册 MySQL 服务器版本,用于在 ':username 附近使用正确的语法,
oncall_area= :oncall_area,oncall_month= :oncall_mo' 在第 2 行
我的代码是:
try {
$db = new PDO("mysql:host=$server;dbname=$dbname;charset=utf8", $dbuser, $dbpass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "
UPDATE `oncall_users`
SET `username` = :username,
`oncall_area` = :oncall_area,
`oncall_month` = :oncall_month,
`oncall_year` = :oncall_year,
`oncall_day` = :oncall_day,
`order` = :order,
`mobile` = :mobile,
`email` = :email,
`ext` = :ext,
WHERE `id` = :id";
$update = $db->exec($sql);
$update->bindParam(':username', $username, PDO::PARAM_STR);
$update->bindParam(':oncall_area', $oncall_area);
$update->bindParam(':oncall_month', $oncall_month);
$update->bindParam(':oncall_year', $oncall_year);
$update->bindParam(':oncall_day', $oncall_day);
$update->bindParam(':order', $order);
$update->bindParam(':email', $email);
$update->bindParam(':mobile', $mobile);
$update->bindParam(':ext', $ext);
$update->bindParam(':id', $id);
$count = $update->execute();
$db = null; // Disconnect
}
catch(PDOException $e) {
echo "ERROR:" . $e->getMessage();
}
【问题讨论】:
-
您的用户是否有表的更新权限?
-
什么是
$db->exec($sql);??这是准备陈述还是做什么? -
错了吗?谢谢
-
即使我使用 prepare 也会出现同样的错误
-
我想更新我的数据库。