Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Holen Sie Benutzerkommentare von Mysql mit Php

Sie verwenden einfache Anführungszeichen in Ihrer Einfügeanweisung :

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

Mit diesen einfachen Anführungszeichen $comm werden nicht ausgewertet -- und das wörtliche $comm Zeichenfolge an die Datenbank gesendet -- was zu etwas führt, das Sie wahrscheinlich nicht ganz erwarten.


Wenn Sie möchten, dass Variablen interpoliert werden, sollten Sie doppelte Anführungszeichen um Ihren String .

Aber da Sie versuchen, vorbereitete Anweisungen zu verwenden, sollten Sie das nicht tun , eigentlich.

Stattdessen sollten Sie Platzhalter in der Anweisung verwenden -- und diese dann beim Ausführen der Anweisung an Ihre Daten binden.


Ihre prepare würde ungefähr so ​​aussehen, nehme ich an:

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

Beachten Sie den :comm , :pID3 , und :cID Platzhalter.

Und dann, wenn Sie die Anweisung ausführen, übergeben Sie tatsächlich einige echte Daten, um den Platzhaltern zu entsprechen:

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


Zusätzlicher Hinweis:Da Sie vorbereitete Anweisungen verwenden, müssen Sie mysql_real_escape_string() nicht verwenden (Das ist übrigens keine PDO-bezogene Funktion und sollte nur verwendet werden, wenn mit mysql_* gearbeitet wird Funktionen) :Das Entkommen wird vom vorbereiteten Anweisungsmechanismus selbst behandelt.