Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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
Mysql PDO-如何更新firstname,其中username=:user_id,bind value_Mysql_Database_Pdo_Sqlbindparameter - Fatal编程技术网

Mysql PDO-如何更新firstname,其中username=:user_id,bind value

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/

我正在尝试运行此查询,但是,我不断收到错误致命错误:未捕获异常“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时如何绑定值

 $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没问题。发生在我们所有人身上。