sql >> Base de Datos >  >> RDS >> Mysql

PDO - consulta sin resultados

El problema aquí es que vincula parámetros con bindParam , que utiliza el enlace por referencia. En tu caso deberías usar bindValue en cambio:

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

O puede pasar su matriz directamente a execute() método:

$sql->execute( $binders );

Como se describe en el manual:

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

Entonces, cuando tu ciclo foreach finaliza $value tiene el valor del último elemento de la matriz Apple . Así que cuando execute se ejecuta, tanto :ctid y :p1 los valores se vuelven iguales a Apple . Seguramente, esto no es lo que quieres)