0

このクエリを実行しようとしていますが、「致命的なエラー:メッセージ「SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1064 You have an error in your SQL syntax; check the manualこれは、/home/a7668955/public_html/uploadproc1.php:106 の 1 行目の近くで使用する正しい構文の MySQL サーバー バージョンに対応しています。スタック トレース: #0 /home/a7668955/public_html/uploadproc1.php( 106): PDOStatement->execute() #1 {main} が 106 行目の /home/a7668955/public_html/uploadproc1.php でスローされました"

SQLステートメントを書いた方法に関係していると確信していますが、user_idが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();

助けてくれてありがとう!(このクエリは、古い 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 に答える