挿入ステートメントで一重引用符を使用しています:
$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_*
を使用する場合にのみ使用してください。 関数) :エスケープは、プリペアドステートメントのメカニズム自体によって処理されます。