我从mysql准备的语句开始,由于一个我不理解的错误,我无法前进。下面是我更新de db的函数:

public function updateUserData($user_label,$user_alliance, $score, $rank, $timestamp, $user_id, $db_object){


    $sql='UPDATE users SET label = ?, alliance = ?,  points = ?, position = ?, modified = ?,  WHERE user_id = ?';

    $label = $user_label;
    $alliance = $user_alliance;
    $points = $score;
    $position = $rank;
    $modified = $timestamp;
    $user_id_q = $user_id;

    $stmt = $db_object->prepare($sql);
    if($stmt === false) {
      trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $db_object->error, E_USER_ERROR);
    }

    $stmt->bind_param('ssiiii',$label,$alliance,$points,$position,$modified,$user_id_q);

    /* Execute statement */
    $stmt->execute();

    echo $stmt->affected_rows;

    $stmt->close();

}

以下是我的使用方法:
//Get user Data
$user = new user();
$page_clasif = $user->getPagClasif($ch,$url_clasif);
$user_label = $user->findPlayerName($page_clasif);
$user_alliance = $user->findAllianceName($page_clasif);
$rank = $user->findRank($page_clasif);
$score = $user->findScore($page_clasif);
$user_id = $user->findPlayerId($page_clasif);
$version = $user->findVersion($page_clasif);
$user_universe = $user->findUniverse($page_clasif);

//Get install date as timestamp
$core = new core();
$timestamp = $core->dateAsTimestamp();
//Update User
$user->updateUserData($user_label,$user_alliance,$score,$rank,$timestamp,$user_id,$conn);

错误如下:
 PHP Fatal error:  Wrong SQL: UPDATE users SET label = ?, alliance = ?,  points = ?, position = ?, modified = ?,  WHERE user_id = ? Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE user_id = ?'

有什么想法吗?
提前谢谢。

最佳答案

WHERE关键字前有多余的逗号:

$sql='UPDATE users SET label = ?, alliance = ?,  points = ?, position = ?, modified = ?,  WHERE user_id = ?';
//                                                                 remove this comma --^

09-27 04:29