sql >> Databasteknik >  >> RDS >> Mysql

Få användarkommentarer från Mysql med Php

Du använder enkla citattecken i din infogningssats :

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

Med dessa enkla citattecken, $comm kommer inte att utvärderas -- och bokstaven $comm sträng kommer att skickas till databasen -- vilket resulterar i något du förmodligen inte riktigt förväntar dig.


Om du vill att variabler ska interpoleras bör du använda dubbla citattecken runt din sträng .

Men, när du försöker använda förberedda uttalanden, är det inte vad du bör göra , faktiskt.

Istället bör du använda platshållare i uttalandet -- och bind sedan dessa till dina data när du kör uttalandet.


Din prepare skulle se ut lite så här antar jag :

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

Notera :comm , :pID3 och :cID platshållare.

Och sedan, när du kör uttalandet, kommer du faktiskt att skicka några riktiga data, för att motsvara platshållarna :

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


Ytterligare anmärkning:eftersom du använder förberedda satser behöver du inte använda mysql_real_escape_string() (som inte är en PDO-relaterad funktion, BTW, och bör endast användas när man arbetar med mysql_* funktioner) :flykten hanteras av den förberedda uttalandemekanismen själv.



  1. Hur använder man pg_stat_activity?

  2. mysqldump:Kunde inte köras. Okänd tabell 'column_statistics' i informationsschema

  3. org.postgresql.util.PSQLEUndantag:FATAL:ledsen, för många klienter redan

  4. Ändra MySQL-drivrutinen som används av Joomla