PDO在更新时遇到问题

PDO在更新时遇到问题

问题描述:

我有一个PDO更新到我的数据库的问题,只有某些变量会更新,其他变量则不会。只有不会工作的是“PvP”变量。我看不到任何PDO错误,所以我完全不知道这里发生了什么。 “$ epa_array”等等只是一个数组,其中int值是从json_decode中解析出来的。PDO在更新时遇到问题

我已经证实,mysql列实际上是INT类型,相应的PDO查询也是INT。

$u_id    = 1; 
$gw2_name   = $epa_array[0]['name']; 
$gw2_world_id  = $epa_array[0]['world']; 
$gw2_world_name  = $epw_array[0]['name']; 
$PvP_rank   = $pvp_array[0]['pvp_rank']; 
$PvP_total_wins  = $pvp_array[0]['aggregate']['wins']; 
$PvP_total_losses = $pvp_array[0]['aggregate']['losses']; 
$PvP_rank_points = $pvp_array[0]['pvp_rank_points']; 

$stmt = $db->prepare("UPDATE `Members` SET gw2_name = ?, WorldID = ?, Worldname = ?, PvP_rank = ?, PvP_total_wins = ?,PvP_total_losses = ?, PvP_rank_points = ?, WHERE ID = ?"); 
$stmt->bindValue(1, $gw2_name, PDO::PARAM_STR); 
$stmt->bindValue(2, $gw2_world_id, PDO::PARAM_INT); 
$stmt->bindValue(3, $gw2_world_name, PDO::PARAM_STR); 
$stmt->bindValue(4, $PvP_rank, PDO::PARAM_INT); 
$stmt->bindValue(5, $PvP_total_wins, PDO::PARAM_INT); 
$stmt->bindValue(6, $PvP_total_losses, PDO::PARAM_INT); 
$stmt->bindValue(7, $PvP_rank_points, PDO::PARAM_INT); 
$stmt->bindValue(8, $u_id, PDO::PARAM_INT); 
$stmt->execute(); 

可能不是唯一的问题 - 但你不WHERE子句前需要的最后一个逗号 - 它应该是:

....PvP_rank_points = ? WHERE ID = ?"); 
+0

这正是问题了。 4小时后,哈哈!谢谢! – Kevin

+0

无后顾之忧 - 乐于助人。祝你好运:) – gavgrif