PDO - 如何更新firstname,其中username =:user_id,绑定值

时间:2012-09-21 17:33:22

标签: mysql database pdo sqlbindparameter

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

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

1 个答案:

答案 0 :(得分: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();

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