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

PHPを使用してMysqlからユーザーのコメントを取得する

    挿入ステートメントで一重引用符を使用しています:

    $sth3 = $pdo3->prepare('
        INSERT INTO Comment (info, pID, cID)
        VALUES($comm, $pID3, $cID)
    ');
    

    これらの簡単な引用符で、 $comm 評価されません -そして文字通りの$comm 文字列がデータベースに送信されます。その結果、おそらく予想外の結果になります。


    変数を補間する場合は、文字列を二重引用符で囲みます

    しかし、プリペアドステートメントを使おうとしているので、それはあなたがすべきことではありません 、実際に。

    代わりに、ステートメントでプレースホルダーを使用する必要があります -そして、ステートメントを実行するときに、それらをデータにバインドします。


    あなたのprepare 少しこのように見えるでしょう、私は推測します:

    $sth3 = $pdo3->prepare('
        INSERT INTO Comment (info, pID, cID)
        VALUES(:comm, :pID3, :cID)
    ');
    

    :commに注意してください 、:pID3 、および:cID プレースホルダー。

    そして、ステートメントを実行するときに、プレースホルダーに対応するために、実際にいくつかの実際のデータを渡します:

    $ sth3-> execute(array(':comm' => $ comm、':pID3' => $ pID3、':cID' => $ cID、));


    追記:プリペアドステートメントを使用しているため、 mysql_real_escape_string()を使用する必要はありません。 (これはPDO関連の関数ではありません。ところで、mysql_*を使用する場合にのみ使用してください。 関数) :エスケープは、プリペアドステートメントのメカニズム自体によって処理されます。



    1. MySQL-Mac-エラー2002-ソケットを介してローカルに接続できません...

    2. Sparkのjdbcに適したドライバーが見つかりません

    3. Djangoがpostgresqlでシリアル化可能なトランザクション分離レベルを使用している場合のシリアル化の失敗を表す特定の例外は何ですか?

    4. REFのテーブルのスコープ