想知道是否有人可以提供帮助 - 我确信之前有效,但我无法获得mysql更新工作
$db->query("UPDATE entry_pending_details SET old_value = '{$value ["old_value"]}' WHERE id = '{$value ["id"]}'");
显然,变量没有被识别,好像我把硬编码的值丢弃了。
有什么想法吗?
由于
答案 0 :(得分:3)
你的问题可能是:
双引号字符串中有双引号。这甚至不应该运行,这是一个语法错误。
变量名称和括号之间的空格。
您可能容易受到SQL注入攻击,并且肯定容易受到您自己的逻辑错误的影响。
改为使用绑定参数。
$st = $db->prepare("UPDATE entry_pending_details SET old_value = ? WHERE id = ?");
$st->execute(array($value['old_value'], $value['id']));
答案 1 :(得分:2)
你必须在数组索引周围使用单引号'
或转义双引号(如\"
)。我用单个引号替换双引号
"UPDATE entry_pending_details SET old_value = '{$value['old_value']}' WHERE id = '{$value['id']}'"
答案 2 :(得分:0)
我要做的是事先将值设置为变量。 e.g
$old_value = $value['old_value'];
$id = $value['id'];
mysql_query("UPDATE entry_pending_details SET old_value = '$old_value' WHERE id = '$id'");
答案 3 :(得分:-2)
尝试以下方法:
$sql = "UPDATE entry_pending_details SET old_value = '{$value ["old_value"]}' WHERE id = '{$value ["id"]}'";
mysql_query($sql) or die(mysql_error());
echo $sql;
将查询放入变量是个好主意,以便以后可以根据需要进行检查。
同样,var_dump($values)
显示了什么?