Php Can';我不能用这个mysql语句更新分数

Php Can';我不能用这个mysql语句更新分数,php,mysql,sql,sql-update,Php,Mysql,Sql,Sql Update,我猜我只是有点生疏什么的,因为这似乎应该是有效的。我是不是错过了什么 这是我试图使用的代码 <?php echo dbConn(); $existing_time = mysql_result(mysql_query("SELECT p_time FROM scores WHERE p_uid=$uid"), 0); $existing_category = mysql_result(mysql_query("SELECT p_cat FROM scores WHERE p_uid=$u

我猜我只是有点生疏什么的,因为这似乎应该是有效的。我是不是错过了什么

这是我试图使用的代码

<?php 
echo dbConn();
$existing_time = mysql_result(mysql_query("SELECT p_time FROM scores WHERE p_uid=$uid"), 0);
$existing_category = mysql_result(mysql_query("SELECT p_cat FROM scores WHERE p_uid=$uid AND p_cat=$pieces"), 0);

if ($existing_category == "") {
mysql_query(
          "INSERT INTO scores VALUES (
          '',
          '$uid',
          '$pusername', 
          '$time',
          '$pieces'
          )");
} elseif ($existing_time <= $time) {
    echo "No Change!  Old Score Was Better (Lower)";
} elseif ($existing_time > $time) {
    mysql_query("UPDATE scores SET p_time = " . $time . " WHERE p_uid = " . $uid . " AND p_cat = " . $pieces . "");
};
?>

将更新语句更改为:

mysql_query("UPDATE scores SET p_time = '" . $time . "' WHERE p_uid = " . $uid . " AND p_cat = " . $pieces . "");

您在update语句中的
$time

周围缺少引号,在
update
语句中的
$time
周围缺少引号。另外,请查看
ON replicate KEY update
选项,该选项允许您在一条语句中完成此操作。谢谢。我真不敢相信我错过了这些引语。{facepalm}。。。不过,我不确定在这里重复密钥更新的工作方式。我以前没用过。顺便说一下。。。你应该回答问题,而不是简单地评论问题。否则,我不能选择你的答案作为最有用的答案。如果我是你,我会删除这个问题。我不值得花时间写一个完整的答案。