将变量嵌入到Mysql中

时间:2011-08-09 22:08:03

标签: php mysql

想知道是否有人可以提供帮助 - 我确信之前有效,但我无法获得mysql更新工作

$db->query("UPDATE entry_pending_details SET old_value = '{$value ["old_value"]}' WHERE id = '{$value ["id"]}'");

显然,变量没有被识别,好像我把硬编码的值丢弃了。

有什么想法吗?

由于

4 个答案:

答案 0 :(得分:3)

你的问题可能是:

  1. 双引号字符串中有双引号。这甚至不应该运行,这是一个语法错误。

  2. 变量名称和括号之间的空格。

  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)显示了什么?