0

我正在为一个朋友开发一个 RPG 类型的战斗系统,并且遇到了一个 mysql 查询的令人沮丧的问题。另外,请不要讲 mysql_ 函数的语义。

$sql = "UPDATE `user_pets` SET `curhp` = `hitpoints`, `curmp` = `misticpower`, `pet_status` = '0' WHERE `id` = '" .$arrayPet['id']. "'";
if ( mysql_query($sql) {
    echo "Success";
}

每次在应用程序中都会成功返回。但是,数据库中实际上没有发生任何事情。我已经回显了查询本身并在 phpmyadmin 中运行它,并且“修复”已正确完成。但是,执行此查询时实际发生了什么,这不是我们想要的。

有关故障排除的任何建议,或者您是否发现查询本身有任何问题?

$arrayPet['id'] 取自user_pets表格,是一个有效的 ID。

4

2 回答 2

2

我建议的第一件事是不要$arrayPet['id']用单引号括起来……我假设它是一个整数。

其次,如果函数 mysql_query() 成功返回,并不一定意味着任何内容都已更新。它只是意味着查询在服务器上成功执行。您的查询看起来只是设置了一些字符串并将 pet_status 设置为 0。请提供:

  1. 来自 user_pets 的一行数据的实际样本
  2. 此查询运行后您期望该行的样子
于 2012-07-18T20:49:30.870 回答
0

尝试这个:

$sql = "UPDATE user_pets SET curhp = 'hitpoints', curmp = 'misticpower', pet_status = '0' WHERE id = '" .$arrayPet['id']. "'";
$result = mysql_query($sql);

if ($result) {
echo "Success";

}

更重要的是,检查你的 $arrayPet['id']: 它返回一个整数还是字符串值?如果它是整数类型,则不要将其放在单引号内。只需执行以下操作:

... WHERE id = $arrayPet['id']";
于 2012-07-18T21:03:47.010 回答