Inserer les valeurs d'un array dans une requete
Résolu/Fermé
LearnDeep
jordane45
- Messages postés
- 69
- Date d'inscription
- lundi 10 décembre 2018
- Statut
- Membre
- Dernière intervention
- 21 août 2021
jordane45
- Messages postés
- 35487
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 24 mai 2022
A voir également:
- Inserer les valeurs d'un array dans une requete
- Inserer les valeurs d'un array dans une requete ✓ - Forum - PHP
- Excel, insérer des valeurs dans une phrase ✓ - Forum - Excel
- Inserer une valeur décimale ✓ - Forum - PHP
- Supprimer une valeur dans un array avec Randomize ✓ - Forum - VB / VBA
- Insérer des valeurs de cellule (des mots) dans une formule ✓ - Forum - Excel
1 réponse
jordane45
31 août 2019 à 13:11
- Messages postés
- 35487
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 24 mai 2022
31 août 2019 à 13:11
Bonjour,
Déjà... pour le PDO .. il faut correctement activer ET gérer les éventuelles erreurs.
Pour ça, applique ce qui est indiqué dans ce lien
https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs
Ensuite...
L'instruction EXECUTE attend la liste de TOUS les paramètres que tu as mis dans le PREPARE de ta requête... (et avec le MEME nom ... )
Dans ton cas;.. il attend donc les paramètres suivants :
Donc un ARRAY de la forme
Tu nous dis que ton array contient :
</code>
Donc.. oui.. tu as un ARRAY ... mais ton array est constitué d' OBJET
Il te faut donc Extraire les différentes valeurs de cet objet... pour construire l'ARRAY attendu dans le execute.
ce qui donnerait un truc du genre :
Déjà... pour le PDO .. il faut correctement activer ET gérer les éventuelles erreurs.
Pour ça, applique ce qui est indiqué dans ce lien
https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs
Ensuite...
L'instruction EXECUTE attend la liste de TOUS les paramètres que tu as mis dans le PREPARE de ta requête... (et avec le MEME nom ... )
Dans ton cas;.. il attend donc les paramètres suivants :
:refCmd,:refProduit,:prix,qte
Donc un ARRAY de la forme
array(':refCmd'=>35 ,':refProduit'=>1 ,':prix' =>2.4 , 'qte'=>1 );
Tu nous dis que ton array contient :
([0]=> stdClass Object([idprod]=>8[prix]=>2[qte]=>1[refCmd]=>35)[1]=> stdClass Object([idprod]=>9[prix]=>2.4[qte]=>5[refCmd]=>35))
</code>
Donc.. oui.. tu as un ARRAY ... mais ton array est constitué d' OBJET
stdClass Object
Il te faut donc Extraire les différentes valeurs de cet objet... pour construire l'ARRAY attendu dans le execute.
ce qui donnerait un truc du genre :
try{ $p = $db->prepare("INSERT INTO regrouper (refCommande, refProduit, prixP, qteP) VALUES(:refCmd,:refProduit,:prix,:qte)"); foreach ($tab as $item) { $datas = array(':refCmd'=>$item->refcmd ,':refProduit'=>$item->idprod ,':prix' =>$item->prix , ':qte'=>$item->qte ); $p->execute($datas); } }catch(Exception $e){ echo " Erreur :" . $e->getMessage(); }