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']));