Probleme bindparam toutes les valeurs sont identiques
Bonjour,
Tout d'abord, vu la date, je vous souhaite tous mes voeux !
Concernant mon soucis, la fonction permet de préparer une requête d'insertion mysql à partir d'un tableau de valeur.
Exemple de tableau de donnee :
Code:
$data = array('user_id' => '', 'user_lastname' => 'aaa', 'user_firstname' => 'bbb' ) ;
Le problème doit se passer probablement au bind des paramètres car le résultat est que j'obtiens la dernière valeur de $data (ici "bbb") pour tous les champs de la BDD... Je n'arrive vraiment pas à comprendre le soucis !
Si quelqu'un avait une idée !! Merci par avance !
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| $fields = '' ;
$values = '' ;
$i = 1 ;
if ( PDO_ON )
{
foreach( $data as $key => $value )
{
$fields .= $key ;
$values .= ":$key" ;
if ( count($data) != $i )
{
$fields .= ',' ;
$values .= ',' ;
}
$i++ ;
}
$query = "INSERT INTO $table ($fields) VALUES ($values)" ;
$req = $this -> PDOInstance -> prepare( $query ) ;
foreach( $data as $key => $value )
{
$req -> bindParam(':'.$key , $value ) ;
echo '-';
}
if ( !$req -> execute() )
{
throw new Exception( 'Erreur d\'enregistrement dans la base de données !' ) ;
}
} |