这是我的功能。一个简单的函数,它有一个默认参数传递给查询。但问题是当表名在撇号中时,sql 将其视为字符串而不是表。
function toggleStatus($id, $table=content){
try{
$stmt = $this->db->prepare('UPDATE :table SET status = status+1 WHERE id=:id');
$stmt->execute( array( "table"=> $table, "id"=> $id ) );
}catch(PDOException $e){
$debug .= "<br> ERROR:".$e->getMessage();
}
}
由于此查询,我收到此错误:
ERROR:SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 ''content' SET status = status+1 WHERE id='82'' 附近使用正确的语法
PS:当我删除参数并手动编写它时,它就可以工作了。