PDO - Как обновить имя, где username=:user_id, значение привязки
Однако я пытаюсь выполнить этот запрос, но получаю сообщение об ошибке "Неустранимая ошибка: необработанное исключение" PDOException "с сообщением" SQLSTATE[42000]: синтаксическая ошибка или нарушение прав доступа: 1064 В синтаксисе SQL есть ошибка; обратитесь к руководству " которая соответствует версии вашего сервера MySQL для правильного синтаксиса для использования рядом с ')' в строке 1 в /home/a7668955/public_html/uploadproc1.php:106 трассировки стека: #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_*)
1 ответ
Попробуй это:
$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();
У вас есть дополнительный )
в конце, кто ничего не соответствует. Сообщение об ошибке было правильным.