Bonjour,
Je veux créer une requête d'insertion pour importer des données avec une requête sur le modèle INSERT IGNORE INTO dat_customers ($sCols) VALUES ($sValues)
A partir d'un tableau:
je crée une liste de colonnes $sCols en extrayant les clés du tableau et là tout est bon.
je crée une liste de valeurs $sValues avec des boucles foreach et là, je coince à la ligne 13.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 function importAddresses($data){ $db = dbConnect(); //var_dump($data); // OK: renvoie le tableau attendu de la forme 0=>'nom_colonne'=>'une donnée $sCols = implode(',', array_keys($data[0])); //var_dump($sCols); // OK: renvoie la liste des colonnes $sValues = ''; foreach($data as $key=>$aValues){ foreach($aValues as &$sValue){ $sValue = $db->quote($sValue); } unset($sValue); var_dump($aValues); // OK: renvoie les bons tableaux $sValues .= "(".implode(',',$aValues)."),\n"; var_dump($sValues); // Renvoie toujours la première liste. Pourquoi? } exit; // Pour test uniquement $sql = <<<SQL INSERT IGNORE INTO dat_customers ($sCols) VALUES ($sValues) SQL; $sql = str_replace("),\n)",'))',$sql); $stmt = $db->query($sql); var_dump($stmt->rowCount()); //return $stmt->rowCount(); }
Partager