想知道如果有人能帮助 - 我敢肯定,这是以前的工作,但我不能让一个MySQL更新工作变量嵌入到MySQL
$db->query("UPDATE entry_pending_details SET old_value = '{$value ["old_value"]}' WHERE id = '{$value ["id"]}'");
它显然无法被识别为当我变数放下硬编码的值就可以了。
任何想法?
感谢
想知道如果有人能帮助 - 我敢肯定,这是以前的工作,但我不能让一个MySQL更新工作变量嵌入到MySQL
$db->query("UPDATE entry_pending_details SET old_value = '{$value ["old_value"]}' WHERE id = '{$value ["id"]}'");
它显然无法被识别为当我变数放下硬编码的值就可以了。
任何想法?
感谢
您必须使用单引号'
或绕数组索引(如\"
)转义双引号。我用单引号替换双引号
"UPDATE entry_pending_details SET old_value = '{$value['old_value']}' WHERE id = '{$value['id']}'"
试过了。数组var中的'''var不会“破坏”5.3.2上的字符串。 –
嗯,真的?没有意识到这一点,现在无法测试......无论如何,OP不会不提他使用的是什么版本,或许它是早期的版本,但它不支持它?但Dan的使用参数的答案是要走向IMO的方式 – ain
不知道它何时会发生变化。注意var名称中的引号和空格,但是(虽然很奇怪)在5.3.2上工作。 –
你的问题可能是:
你有一个双引号字符串中双引号。这甚至不应该运行,这是一个语法错误。
变量名和括号之间的空格。
您可能容易受到SQL注入攻击,并且肯定容易受到自己的逻辑错误的影响。
改为使用绑定参数。
$st = $db->prepare("UPDATE entry_pending_details SET old_value = ? WHERE id = ?");
$st->execute(array($value['old_value'], $value['id']));
我认为这也是空间,但在我的5.3.2上,{}'表示法符合空格。例如'echo {$ x ['a']}'和'echo {$ x ['a']}'都可以在$ x ['a'] ='yo''上正常工作,并给我'哟' (意外。 –
尝试以下操作:
$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)
显示什么?
我想要做的就是事先将值设置为变量。例如
$old_value = $value['old_value'];
$id = $value['id'];
mysql_query("UPDATE entry_pending_details SET old_value = '$old_value' WHERE id = '$id'");
那么在它坏了之前你有什么改变? – ain