sql >> Base de Datos >  >> RDS >> Mysql

Obtenga comentarios de los usuarios de Mysql usando Php

Está utilizando comillas simples en su declaración de inserción:

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

Con esas comillas simples, $comm no será evaluado -- y el literal $comm la cadena se enviará a la base de datos, lo que resultará en algo que probablemente no esperas.


Si desea interpolar variables, debe usar comillas dobles alrededor de su cadena .

Pero, como está tratando de usar declaraciones preparadas, eso no es lo que debe hacer , en realidad.

En su lugar, debe usar marcadores de posición en la declaración -- y, luego, vincúlelos a sus datos, al ejecutar la instrucción.


Tu prepare se vería un poco así, supongo :

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

Tenga en cuenta el :comm , :pID3 y :cID marcadores de posición.

Y, luego, al ejecutar la declaración, en realidad pasará algunos datos reales, para corresponder a los marcadores de posición:

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


Nota adicional:como está usando declaraciones preparadas, no tiene que usar mysql_real_escape_string() (que no es una función relacionada con PDO, por cierto, y solo debe usarse cuando se trabaja con mysql_* funciones) :el escape es tratado por el propio mecanismo de declaración preparada.