sql >> データベース >  >> RDS >> Mysql

プリペアドステートメントを使用したMysql更新クエリでエラーが発生する

    コメントで言われていますが、プレースホルダーを見逃しました。

    したがって、変更します:

    $sql = 
        "UPDATE blog_posts 
            SET post_title='$post_title', 
            content='$content', 
            author_name='$author_name', 
            category='$category', 
            post_date='$post_date',
            image='$image_name'
            WHERE post_id='$id'";
    

    宛先:

    $sql = 
        "UPDATE blog_posts 
            SET post_title=?, 
            content=?, 
            author_name=?, 
            category=?, 
            post_date=?, 
            image=? 
            WHERE post_id=?";
    

    それはそれと同じくらい簡単です。

    マニュアルには適切な構文が含まれています:

    引数を正しい順序で渡すことを忘れないでください 。クエリで使用されているのと同じ順序で渡す必要があるため(画像を投稿日と入れ替えた)、次のようになります。

    $stmt->bind_param("ssssisi", $post_title, $content, $author_name, $category, $post_date, $image_name, $id);
    



    1. インデックスはMySQLの比較よりも高速になりますか?

    2. SQLServerでデータベースの名前を変更する方法-SQLServer/TSQLチュートリアルパート26

    3. BashスクリプトによるMYSQLコマンドラインのエスケープ

    4. Laravel 5.5エラーベーステーブルまたはビューはすでに存在します:1050テーブル'users'はすでに存在します