Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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 更新查询语法_Php_Mysql_Sql - Fatal编程技术网

Php 更新查询语法

Php 更新查询语法,php,mysql,sql,Php,Mysql,Sql,我想用以下代码更新我的表。但更新未成功 $sql_edit = "UPDATE subscription SET name=?,email=? WHERE name=? & email=?"; $q_edit = $pdo->prepare($sql_edit); $q_edit->execute(array($_POST['new_name'],$_POST['new_email'],$_POST['old_name'],$_POST['o

我想用以下代码更新我的表。但更新未成功

 $sql_edit = "UPDATE subscription SET name=?,email=? WHERE name=? & email=?";
        $q_edit = $pdo->prepare($sql_edit);
        $q_edit->execute(array($_POST['new_name'],$_POST['new_email'],$_POST['old_name'],$_POST['old_email']));

我怀疑这是因为您的$\u POST变量之一未设置。下面的代码检查post变量是否已设置,如果未设置,则将其设置为null值。我把你用的符号改了,应该是和

我建议在发布之前检查这些值,而不是像那样将它们放入数组中

要检查的另一件事是,您的连接未设置为隐式事务,否则需要将更改提交到数据库或回滚:

$pdo->rollBack();

$pdo->commit();
只有将列设置为允许空值时,此操作才有效。

使用AND in WHERE条件,而不是&as&is按位运算符

    $sql_edit = "UPDATE subscription SET name=?,email=? WHERE name=? AND email=?";
    $q_edit = $pdo->prepare($sql_edit);
    $q_edit->execute(array($_POST['new_name'],$_POST['new_email'],$_POST['old_name'],$_POST['old_email']));

使用print_r$pdo->errorInfo;检查;,找出错误。
    $sql_edit = "UPDATE subscription SET name=?,email=? WHERE name=? AND email=?";
    $q_edit = $pdo->prepare($sql_edit);
    $q_edit->execute(array($_POST['new_name'],$_POST['new_email'],$_POST['old_name'],$_POST['old_email']));