Mysql
 sql >> Base de données >  >> RDS >> Mysql

AOP - requête ne donnant aucun résultat

Le problème ici est que vous liez les paramètres avec bindParam , qui utilise la liaison par référence. Dans votre cas, vous devez utiliser bindValue à la place :

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

Ou vous pouvez passer votre tableau directement à execute() méthode :

$sql->execute( $binders );

Comme décrit dans le manuel :

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

Ainsi, lorsque votre boucle foreach se termine $value a la valeur du dernier élément du tableau Apple . Ainsi, lorsque execute s'exécute, à la fois :ctid et :p1 les valeurs deviennent égales à Apple . Ce n'est sûrement pas ce que vous voulez)