Mysql“UPDATE”没有做任何事情

时间:2011-01-19 04:24:38

标签: php sql mysql

这是我的更新代码:

$key = $skills[$ind];
echo "\t\t<td>" . $key . "</td>\n";

//explode using a comma as a delimiter
$data_n = explode(",", $word);
$score[$key][”Rank”] = $data_n[0];
$score[$key][”Level”] = $data_n[1];
$score[$key][”Exp”] = $data_n[2];

echo "\t\t<td>" .$data_n[0] . "</td>\n";
echo "\t\t<td>" .$data_n[1] . "</td>\n";
echo "\t\t<td>" .$data_n[2] . "</td>\n";

$result = mysql_query("UPDATE accounts SET $key ='$data_n[1]' WHERE username = '$user'") 
          or 
          die(mysql_error());

基本上,有一个字符串“key”是我正在尝试更新的东西的名称,但它只是没有更新。我已经将“mysql_query”更改为“print”,并打印出它应该具有的内容:

UPDATE accounts SET Total ='1144' WHERE username = 'derekboy'

没有任何错误。打印出$ result表明它将消息发送给MySQL是“真的”。任何人都可以看到这个问题,因为我一直在寻找一整天,但仍然没有。

我的所有代码都位于here;谢谢。您可以看到我连接到脚本顶部的数据库。

2 个答案:

答案 0 :(得分:1)

1)您似乎没有连接到mysql。您的代码在此之前是mysql_connectmysql_select_db吗?

2)尝试在PHPMyAdmin(或您使用的任何MySQL客户端)中运行查询,以查看是否存在任何错误。那里的查询运行正常吗?

3)很可能,您的表格中没有usernamederekboy

答案 1 :(得分:0)

我不太了解PHP,但似乎你用单引号包围变量,其中变量不是插值的。

尝试类似:

$result = mysql_query("UPDATE accounts SET " . $key . " ='" . $data_n[1] . "' WHERE username = '". $user" . "'") or die(mysql_error());