Mysql PDO-如何更新firstname,其中username=:user_id,bind value
我正在尝试运行此查询,但是,我不断收到错误致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,了解在/home/a7668955/public_html/uploadproc1.php:106堆栈跟踪:0/home/a7668955/public_html/uploadproc1.php106:PDOStatement->执行第106行/home/a7668955/public_html/uploadproc1.php中抛出的1{main}语句 我确信这与我编写SQL语句的方式有关,我不确定在两次使用user_id时如何绑定值Mysql PDO-如何更新firstname,其中username=:user_id,bind value,mysql,database,pdo,sqlbindparameter,Mysql,Database,Pdo,Sqlbindparameter,我正在尝试运行此查询,但是,我不断收到错误致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,了解在/home/a7668955/public_html/uploadproc1.php:106堆栈跟踪:0/home/a7668955/public_html/uploadproc1.php106:PDOStatement->执行第106行/home/a7668955/
$sql1 = "UPDATE people SET firstname = (SELECT firstname FROM user WHERE username=:user_id) WHERE username=:user_id)";
$q = $conn->prepare($sql1) or die("failed!");
$q->bindParam(':user_id', $user_id, PDO::PARAM_STR);
$q->execute();
谢谢你的帮助!此查询使用旧的mysql成功运行。\u*请尝试以下操作:
$sql1 = "UPDATE people SET firstname = (SELECT firstname FROM user WHERE username=:user_id) WHERE username=:user_id";
$q = $conn->prepare($sql1) or die("failed!");
$q->bindParam(':user_id', $user_id, PDO::PARAM_STR);
$q->execute();
你有一个额外的在最后谁匹配没有。错误消息是正确的。您在错误消息有用的位置之前就切断了它。。。决赛没有对手。您应该使用两个不同的绑定变量名,例如:user_id1和:user_id2。你为什么用一个什么都不做的查询进行测试?谢谢你的回复,对不起,我现在已经包含了整个错误消息,你能解释一下什么是什么意思吗?我对学习php和pdo非常陌生,我会尽我最大的努力来学习,一旦你删除了最后的语法错误,你的语法错误就会消失。您的查询基本上是说查找一个特定的用户,并将他的名字设置为他的名字,这没有任何效果。谢谢,它现在正在工作,我这样做是因为它正在从一个表复制名字,并将其添加到另一个表中,如果这样做有意义的话?如果你看到上面写着更新人然后从用户中选择是的,我错过了不同的表名:很抱歉。谢谢你的回复!现在它已经开始工作了,代表我犯了一个愚蠢的错误,太多了appreciated@neeko没问题。发生在我们所有人身上。