Mysqli Prepare语句上的分析错误


Parse Error on Mysqli Prepare Statement

运行此代码时出现此错误。

Parse error: syntax error, unexpected 'users_kudos_to_posts' (T_STRING)

代码。

if ($number > 0) {
$arr=explode(",",`$upvoted);
//If I comment out everything below I still get the error. But if I comment out
//the above code, then the error goes away.
if (in_array($primary_id, $arr)) {          
array_push($arr, $primary_id);  
$new_string = implode(",", $arr);
//the line below is where the parse error is pointing too.
   if ($stmt2 = $mysqli->prepare("UPDATE `users_kudos_to_posts` SET `upvoted` = ? 
       WHERE `user_id` = ?")) {
       $stmt2->bind_param('si', $new_string, $session_user_id);
       $stmt2->execute();
       $stmt2->close(); 
   }
}
    }

疯狂的是,除了列的更改之外,我在同一页代码中有其他多个准备好的语句,它们使用相同的sql语句,但它们仍然有效。

此外,我在phpmyAdmin中运行了sql语句,它很有效。

问题是这一行:

$arr=explode(",",`$upvoted);

你有一个多余的背景,不属于那里。应该是:

$arr=explode(",",$upvoted);

StackOverflow的语法高亮显示(呵呵),在`$upvoted:前面的explode语句中有一个额外的backtick

$arr=explode(",",`$upvoted);