sql >> Database teknologi >  >> RDS >> Mysql

Få brugernes kommentarer fra Mysql ved hjælp af Php

Du bruger enkelte anførselstegn i din insert-sætning :

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

Med disse enkle citater, $comm vil ikke blive evalueret -- og den bogstavelige $comm streng vil blive sendt til databasen -- hvilket resulterer i noget, du sandsynligvis ikke helt forventer.


Hvis du ønsker, at variabler skal interpoleres, skal du bruge dobbelte anførselstegn omkring din streng .

Men da du prøver at bruge forberedte udsagn, er det ikke det, du skal gøre , faktisk.

I stedet bør du bruge pladsholdere i sætningen -- og bind dem derefter til dine data, når du udfører sætningen.


Din prepare ville se lidt sådan her ud, formoder jeg :

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

Bemærk :comm , :pID3 og :cID pladsholdere.

Og så, når du udfører sætningen, sender du faktisk nogle rigtige data, der svarer til pladsholderne :

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


Yderligere bemærkning:da du bruger forberedte sætninger, behøver du ikke at bruge mysql_real_escape_string() (som ikke er en PDO-relateret funktion, BTW, og bør kun bruges, når du arbejder med mysql_* funktioner) :undslippelsen håndteres af den forberedte erklæringsmekanisme selv.



  1. Hvad er LIKE Logical Operator i SQL Server - SQL Server / TSQL Tutorial Del 123

  2. Et element med samme nøgle er allerede blevet tilføjet Fejl på SSRS, når du prøver at indstille datasæt

  3. @OnDelete Hibernate annotation genererer ikke PÅ SLET CASCADE til MySql

  4. Importerer bulk CSV-data i UTF-8 til MySQL