Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将变量嵌入Mysql_Php_Mysql - Fatal编程技术网

Php 将变量嵌入Mysql

Php 将变量嵌入Mysql,php,mysql,Php,Mysql,想知道是否有人能帮上忙-我肯定这以前是可行的,但我无法让mysql更新正常工作 $db->query("UPDATE entry_pending_details SET old_value = '{$value ["old_value"]}' WHERE id = '{$value ["id"]}'"); 很明显,变量没有被识别,好像我把硬编码的值放进去了一样 有什么想法吗 谢谢您的问题可能是: 双引号字符串中包含双引号。这甚至不应该运行,这是一个语法错误 变量名和括号之间的空格 您可能

想知道是否有人能帮上忙-我肯定这以前是可行的,但我无法让mysql更新正常工作

$db->query("UPDATE entry_pending_details SET old_value = '{$value ["old_value"]}' WHERE id = '{$value ["id"]}'");
很明显,变量没有被识别,好像我把硬编码的值放进去了一样

有什么想法吗


谢谢

您的问题可能是:

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

  • 变量名和括号之间的空格

  • 您可能容易受到SQL注入攻击,并且肯定容易受到您自己的逻辑错误的攻击

    改用绑定参数

    $st = $db->prepare("UPDATE entry_pending_details SET old_value = ? WHERE id = ?");
    $st->execute(array($value['old_value'], $value['id']));
    

    你的问题可能是:

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

  • 变量名和括号之间的空格

  • 您可能容易受到SQL注入攻击,并且肯定容易受到您自己的逻辑错误的攻击

    改用绑定参数

    $st = $db->prepare("UPDATE entry_pending_details SET old_value = ? WHERE id = ?");
    $st->execute(array($value['old_value'], $value['id']));
    
    请尝试以下操作:

    $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\u dump($values)
    显示了什么?

    请尝试以下操作:

    $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\u dump($values)
    显示了什么?

    您必须使用单引号
    或在数组索引周围转义双引号(如
    \“
    )。我将双引号替换为单引号

    "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']}'"
    

    我要做的是预先将值设置为vars。e、 g

    $old_value = $value['old_value'];
    $id = $value['id'];
    mysql_query("UPDATE entry_pending_details SET old_value = '$old_value' WHERE id = '$id'");
    

    我要做的是预先将值设置为vars。e、 g

    $old_value = $value['old_value'];
    $id = $value['id'];
    mysql_query("UPDATE entry_pending_details SET old_value = '$old_value' WHERE id = '$id'");
    

    我还以为是空格,但在我的5.3.2中,
    {}
    符号与空格配合得很好。e、 g.
    echo{$x['a']}
    echo{$x['a']}
    都能很好地使用
    $x['a']='yo'
    并按预期给我'yo'。我还以为是空格,但在我的5.3.2上,
    {/code>符号可以很好地使用空格。e、 g.
    echo{$x['a']}
    echo{$x['a']}
    两者都能很好地使用
    $x['a']='yo'
    并按预期给我'yo'。
    {}
    数组变量中的
    不会”中断“5.3.2.Hmm上的字符串,真的吗?我不知道,现在无法测试。。。无论如何,OP没有提到他使用的是什么版本,也许是某个早期版本不支持它?但是Dan使用参数的答案是IMO的方法。不知道什么时候会改变。我也很惊讶。我也注意到了变量名中的引号和空格,但这(虽然很奇怪)在5.3.2Hi上确实有效,这是继承的定制CMS,有许多问题我正在设法解决。在前面的代码中,这是从{$h}中选择*的,但由于某些原因,这一行没有。这真让人费解——我敢肯定以前一切都很好。数组中的变量填充得很好。那么,调试它的下一步是转储
    $value[“id”]
    的值,并使用一些mySQL管理软件检查DB中是否存在具有该id的记录(即可能更新失败,因为没有要更新的记录)。尝试了。
    {}
    数组变量中的
    不会”中断“5.3.2.Hmm上的字符串,真的吗?我不知道,现在无法测试。。。无论如何,OP没有提到他使用的是什么版本,也许是某个早期版本不支持它?但是Dan使用参数的答案是IMO的方法。不知道什么时候会改变。我也很惊讶。我也注意到了变量名中的引号和空格,但这(虽然很奇怪)在5.3.2Hi上确实有效,这是继承的定制CMS,有许多问题我正在设法解决。在前面的代码中,这是从{$h}中选择*的,但由于某些原因,这一行没有。这真让人费解——我敢肯定以前一切都很好。数组中的变量填充得很好。那么,调试它的下一步是转储
    $value[“id”]
    的值,并使用一些mySQL管理软件检查DB中是否存在具有该id的记录(即可能更新失败,因为没有要更新的记录).那么在它坏之前你改变了什么?那么在它坏之前你改变了什么?