sql >> Databasteknik >  >> RDS >> Mysql

PDO - fråga ger inga resultat

Problemet här är att du binder parametrar med bindParam , som använder bindning genom referens. I ditt fall bör du använda bindValue istället:

foreach( $binders as $key => $value ) {
    $sql->bindValue( $key, $value );
}

Eller så kan du skicka din array direkt till execute() metod:

$sql->execute( $binders );

Som beskrivs i manualen:

the variable is bound as a reference and will only be evaluated at the time that PDOStatement::execute() is called.

Så när din foreach loop slutar $value har värdet för sista matrisobjektet Apple . Så när execute körs, båda :ctid och :p1 värden blir lika med Apple . Visst, detta är inte vad du vill)



  1. Hur kan SQL Workload Analysis hjälpa dig?

  2. Tillåter oracle alternativet för oengagerad läsning?

  3. PHP - hämta data från db till JSON

  4. Hur skapar man en funktion som returnerar högsta id?