Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Obter comentários de usuários do Mysql usando PHP


Você está usando aspas simples em sua instrução de inserção:
$sth3 = $pdo3->prepare('
    INSERT INTO Comment (info, pID, cID)
    VALUES($comm, $pID3, $cID)
');

Com essas aspas simples, $comm não será avaliado -- e o literal $comm string será enviada para o banco de dados -- resultando em algo que você provavelmente não espera.


Se você quiser que as variáveis ​​sejam interpoladas, você deve usar aspas duplas em sua string .

Mas, como você está tentando usar declarações preparadas, não é isso que você deve fazer , na realidade.

Em vez disso, você deve usar marcadores de posição na declaração -- e, em seguida, vincule-os aos seus dados, ao executar a instrução.


Sua prepare ficaria um pouco assim, suponho:
$sth3 = $pdo3->prepare('
    INSERT INTO Comment (info, pID, cID)
    VALUES(:comm, :pID3, :cID)
');

Observe o :comm , :pID3 e :cID marcadores de posição.

E, então, ao executar a instrução, você realmente passará alguns dados reais, para corresponder aos espaços reservados:

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


Nota adicional:como você está usando instruções preparadas, você não precisa usar mysql_real_escape_string() (que não é uma função relacionada ao PDO, BTW, e deve ser usada apenas ao trabalhar com mysql_* funções) :o escape é tratado pelo próprio mecanismo de instrução preparado.