我正在尝试运行此查询但是,我一直收到错误“致命错误:未捕获异常'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 _ *成功运行)
答案 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();
你最后有一个额外的)
没有匹配。错误消息是正确的。