sql >> Databáze >  >> RDS >> Mysql

PDO - dotaz nedává žádné výsledky

Problém je v tom, že svážete parametry s bindParam , který používá vazbu odkazem. Ve vašem případě byste měli použít bindValue místo toho:

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

Nebo můžete pole předat přímo execute() metoda:

$sql->execute( $binders );

Jak je popsáno v návodu:

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

Takže když vaše smyčka foreach skončí $value má hodnotu poslední položky pole Apple . Takže když execute běží, oba :ctid a :p1 hodnoty se stávají rovno Apple . Určitě to není to, co chcete)



  1. jak vytvořit vnořený výběr na zend db

  2. Úvod do pomalu se měnících rozměrů (SCD)

  3. Entity Framework:mapujte varchar na vlastnost DateTime

  4. Jak to_date() funguje v PostgreSQL