PHP PDO更新ステートメントが失敗する

以下のsql UPDATE文はエラーを返しますが、私はその理由を見ることができません:

Failed to run query: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 6

私はすでにパラメーターをバインドするために渡すアレイのバーチャルをしましたが、私は珍しいことは何も見ません。正しい値が渡され、タイプミスが二重にチェックされます。 私が達成しようとするのは、データベースに挿入した後、firstname-lastnameとuser_idに基づいてユーザ名を自動生成することです。
もしかすると、あなたの提案は何ですか? 私はまだPHP学習段階です。

ありがとう。

        ...

        //Autogenerate user_name based on first name, last name and user_id (auto-increment) 
        $query_username = "
            UPDATE user_tbl 
                SET
                    user_name = :username 
                WHERE
                    user_id = :userid
            ) 
        ";

       //The parameter values 
        $query_params_username = array(
            ':username' => $_SESSION['user']['first_name'].".".$_SESSION['user']['last_name'].$_SESSION['user']['user_id'],
            ':userid' => $_SESSION['user']['user_id']
        );

        try 
        { 
           //Execute the query against the database 
            $stmt_username = $db->prepare($query_username);
            $stmt_username->execute($query_params_username);
        }
        catch(PDOException $ex) 
        {       
             //Not to be used in production 
             die("Failed to run query: " . $ex->getMessage()); 
        }

        $_SESSION['user']['username'] = $_SESSION['user']['first_name'].".".$_SESSION['user']['last_name'].$_SESSION['user']['user_id'];
0
私は、 )の上端が欠けていると思います。
追加された 著者 Funk Forty Niner,
Kim:あなたがその答えを受け入れられるとマークすることができれば、チェックマークをクリックして閉じているとマークしてください。Kim、ありがとう。
追加された 著者 Funk Forty Niner,
Kim:あなたがその答えを受け入れられるとマークすることができれば、チェックマークをクリックして閉じているとマークしてください。Kim、ありがとう。
追加された 著者 Funk Forty Niner,
Kim:あなたがその答えを受け入れられるとマークすることができれば、チェックマークをクリックして閉じているとマークしてください。Kim、ありがとう。
追加された 著者 Funk Forty Niner,
Kim:あなたがその答えを受け入れられるとマークすることができれば、チェックマークをクリックして閉じているとマークしてください。Kim、ありがとう。
追加された 著者 Funk Forty Niner,
偉大な、よく私はそれが学習プロセスで自分自身が役に立った。すべて最高のキム!乾杯
追加された 著者 Funk Forty Niner,
偉大な、よく私はそれが学習プロセスで自分自身が役に立った。すべて最高のキム!乾杯
追加された 著者 Funk Forty Niner,
大丈夫です、キム、私は助けになってうれしかったです。正直言って、私は自分でSQLを学び始めたばかりですが、他のコーディング・ワールドにとってそれほど異例ではありません。したがって、 user_id =:userid の後にを削除しましたか?
追加された 著者 Funk Forty Niner,
大丈夫です、キム、私は助けになってうれしかったです。正直言って、私は自分でSQLを学び始めたばかりですが、他のコーディング・ワールドにとってそれほど異例ではありません。したがって、 user_id =:userid の後にを削除しましたか?
追加された 著者 Funk Forty Niner,
大丈夫です、キム、私は助けになってうれしかったです。正直言って、私は自分でSQLを学び始めたばかりですが、他のコーディング・ワールドにとってそれほど異例ではありません。したがって、 user_id =:userid の後にを削除しましたか?
追加された 著者 Funk Forty Niner,
プラス私は答えとしてそれを作ることができ、いくつかの追加ポイントを笑う!私はちょうど私の大きな<2> 2K に達するための閾値に達しています;-)
追加された 著者 Funk Forty Niner,
プラス私は答えとしてそれを作ることができ、いくつかの追加ポイントを笑う!私はちょうど私の大きな<2> 2K に達するための閾値に達しています;-)
追加された 著者 Funk Forty Niner,
それはあなた次第です。試してみてください。いずれかの方法を教えてください。質問を削除したいと思ったら、そうする ;-)
追加された 著者 Funk Forty Niner,
それはあなた次第です。試してみてください。いずれかの方法を教えてください。質問を削除したいと思ったら、そうする ;-)
追加された 著者 Funk Forty Niner,
上記のKimのところで述べたまたはを削除する)を追加してみてください。
追加された 著者 Funk Forty Niner,
上記のKimのところで述べたまたはを削除する)を追加してみてください。
追加された 著者 Funk Forty Niner,
user_id =:userid の後に)の後に $ query_username = "には
追加された 著者 Funk Forty Niner,
user_id =:userid の後に)の後に $ query_username = "には
追加された 著者 Funk Forty Niner,
6行目は何ですか?
追加された 著者 Funk Forty Niner,
うん、それは私がやったすべてだったし、それは今働く:-)
追加された 著者 Trace,
うん、それは私がやったすべてだったし、それは今働く:-)
追加された 著者 Trace,
うん、それは今フレッドロール!答えは大括弧であるため、この質問は誰にも役立つとは思えません。ご協力いただきありがとうございます;あまりにも長いコードを見ていると、時には盲目になってしまいました。私はしばらくそれを見ていました...しかし、私はあなたの答えを受け入れるのは気にしません:-)
追加された 著者 Trace,
うん、それは今フレッドロール!答えは大括弧であるため、この質問は誰にも役立つとは思えません。ご協力いただきありがとうございます;あまりにも長いコードを見ていると、時には盲目になってしまいました。私はしばらくそれを見ていました...しかし、私はあなたの答えを受け入れるのは気にしません:-)
追加された 著者 Trace,
Heheはうっ血だ。それを取り除き、それがうまくいくかどうかを見てみましょう。私はそれがSOのシステムをきれいに保つために働く場合、私は質問を削除します。盲目か何か...
追加された 著者 Trace,
Heheはうっ血だ。それを取り除き、それがうまくいくかどうかを見てみましょう。私はそれがSOのシステムをきれいに保つために働く場合、私は質問を削除します。盲目か何か...
追加された 著者 Trace,
それはちょっと変だけど、6行目には何もありません。しかし、私がやったエコー/ダイテストのためにtryブロックの後にエラーがスローされていると確信しています。
追加された 著者 Trace,

7 答え

これを試してください:

$query_username = "
                     UPDATE  `user_tbl` 
                     SET     `user_name` = :username 
                     WHERE   `user_id` = :userid
                  ";

あなたのコードに失われた文字があるようです。

2
追加された
@KimGysenタイムスタンプによって、私たちはかなり均等だった。私もupvoteします。私はその表現を知っています。私はオランダの友人がいる。 「それは公正なものだ」
追加された 著者 Funk Forty Niner,
実のところ、私はすでにこの答えをアップvvしているので、誰かがそれを落としてしまったに違いありません。私はなぜか分からない。 Laurentが一重引用符を述べたという事実のためかもしれません。私はそれが痛いとは思わない...
追加された 著者 Trace,
ありがとうローラン本当に正しい、愚かな私です。私はあなたとフレッドの返答をアップアップします(もし彼が答えるなら)。私は誰が最初だったのかわからないので、教会を真ん中に置く(オランダ式)。
追加された 著者 Trace,

これを試してください:

$query_username = "
                     UPDATE  `user_tbl` 
                     SET     `user_name` = :username 
                     WHERE   `user_id` = :userid
                  ";

あなたのコードに失われた文字があるようです。

2
追加された
@KimGysenタイムスタンプによって、私たちはかなり均等だった。私もupvoteします。私はその表現を知っています。私はオランダの友人がいる。 「それは公正なものだ」
追加された 著者 Funk Forty Niner,
実のところ、私はすでにこの答えをアップvvしているので、誰かがそれを落としてしまったに違いありません。私はなぜか分からない。 Laurentが一重引用符を述べたという事実のためかもしれません。私はそれが痛いとは思わない...
追加された 著者 Trace,
ありがとうローラン本当に正しい、愚かな私です。私はあなたとフレッドの返答をアップアップします(もし彼が答えるなら)。私は誰が最初だったのかわからないので、教会を真ん中に置く(オランダ式)。
追加された 著者 Trace,

これを試してください:

$query_username = "
                     UPDATE  `user_tbl` 
                     SET     `user_name` = :username 
                     WHERE   `user_id` = :userid
                  ";

あなたのコードに失われた文字があるようです。

2
追加された
@KimGysenタイムスタンプによって、私たちはかなり均等だった。私もupvoteします。私はその表現を知っています。私はオランダの友人がいる。 「それは公正なものだ」
追加された 著者 Funk Forty Niner,
実のところ、私はすでにこの答えをアップvvしているので、誰かがそれを落としてしまったに違いありません。私はなぜか分からない。 Laurentが一重引用符を述べたという事実のためかもしれません。私はそれが痛いとは思わない...
追加された 著者 Trace,
ありがとうローラン本当に正しい、愚かな私です。私はあなたとフレッドの返答をアップアップします(もし彼が答えるなら)。私は誰が最初だったのかわからないので、教会を真ん中に置く(オランダ式)。
追加された 著者 Trace,

これを試してください:

$query_username = "
                     UPDATE  `user_tbl` 
                     SET     `user_name` = :username 
                     WHERE   `user_id` = :userid
                  ";

あなたのコードに失われた文字があるようです。

2
追加された
@KimGysenタイムスタンプによって、私たちはかなり均等だった。私もupvoteします。私はその表現を知っています。私はオランダの友人がいる。 「それは公正なものだ」
追加された 著者 Funk Forty Niner,
実のところ、私はすでにこの答えをアップvvしているので、誰かがそれを落としてしまったに違いありません。私はなぜか分からない。 Laurentが一重引用符を述べたという事実のためかもしれません。私はそれが痛いとは思わない...
追加された 著者 Trace,
ありがとうローラン本当に正しい、愚かな私です。私はあなたとフレッドの返答をアップアップします(もし彼が答えるなら)。私は誰が最初だったのかわからないので、教会を真ん中に置く(オランダ式)。
追加された 著者 Trace,

You had a closing parentheses after user_id = :userid

以下を試してください:

$query_username = "
    UPDATE user_tbl 
        SET
            user_name = :username 
        WHERE
            user_id = :userid
";
2
追加された

You had a closing parentheses after user_id = :userid

以下を試してください:

$query_username = "
    UPDATE user_tbl 
        SET
            user_name = :username 
        WHERE
            user_id = :userid
";
2
追加された

You had a closing parentheses after user_id = :userid

以下を試してください:

$query_username = "
    UPDATE user_tbl 
        SET
            user_name = :username 
        WHERE
            user_id = :userid
";
2
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com