0

我正在尝试运行此查询,但是,我不断收到错误“致命错误:未捕获的异常 'PDOException' 并带有消息'SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;请查看手册对应于您的 MySQL 服务器版本,以便在 /home/a7668955/public_html/uploadproc1.php:106 中的第 1 行的 ')' 附近使用正确的语法堆栈跟踪:#0 /home/a7668955/public_html/uploadproc1.php( 106): PDOStatement->execute() #1 {main} 在 /home/a7668955/public_html/uploadproc1.php 第 106 行抛出

我确定这与我编写 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_* 成功运行)

4

1 回答 1

2

试试这个:

 $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();

最后你有一个额外)的人没有匹配。错误信息是正确的。

于 2012-09-21T17:44:15.500 回答