Bonjour,
je lance dans un programme vba un script PHP qui construit et execute une requete SQL a partir d'un fichier CSV.
le script évalue la première ligne du fichier CSV (qui contient les nom de colonne de la table) pour créer la requete.
j'ai ajouter une colonne dans le fichier csv avec des valeurs pour celle-ci.
Le soucis est que ma colonne reste a null dans la table.
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| <?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require_once 'config.inc.php';
require_once 'class/Sync.php';
$file = fopen("sqd_data.csv", 'r');
while (!feof($file)) {
$line[] = fgetcsv($file, 1024);
}
fclose($file);
//print_r($line);
$sync = new sync(HOST, NAME, PASS, BASE, PORT);
$db = $sync->db;
// "INSERT INTO suivi_quotidien_drive (COL1, COL2) VALUES (:COL1, :COL2) ON DUPLICATE KEY UPDATE dataJour=VALUES(dataJour) and ManqueAGagner=VALUES(ManqueAGagner);"
$req = "INSERT INTO suivi_quotidien_drive2 (";
$req2 = "";
$bFirst = true;
//$line[0][0]=RefdriveEAN;Categorie;Sous categorie;Segment;Marque;EAN;PCB;Nomproduit;Statut;Enseigne;Refdrive;SCA;Magasin;Adresse;CP;Ville;Visite;Div;Vendeur;CV;dataJour
$header = $line[0];
$i = 1;
foreach ($header as $head) {
if ($bFirst) {
$req .= "`" . $head . "`";
//$req2 .= ":" . $i;
$req2 .= "?";
$i++;
$bFirst = false;
} else {
$req .= ",`" . $head . "`";
//$req2 .= ", :" . $i;
$req2 .= ",?";
$i++;
}
}
$req .= ") VALUES (" . $req2 . ") ON DUPLICATE KEY UPDATE dataJour=VALUES(dataJour);";
//echo $req;
//echo "<br>";
$test = $db->prepare($req);
file_put_contents('exemple.txt', $req);
foreach ($line as $icpt => $value) {
if ($icpt > 0 && (count($header) == count($value))) {
if(!$test->execute($value)){
print_r($test->errorInfo());
echo "<br>";
}
}
}
echo "ok"; |
j'essai de vous télécharger le fichier CSV mais ça marche pas.
une idée déja sur le code ? comment savoir si la requete est bien exécutée ?
le script php se lance bien car il crée bien mon fichier exemple avec la requete dedans, elle n'est pas bonne regardez :
INSERT INTO suivi_quotidien_drive2 (`RefdriveEAN`,`Categorie`,`Sous categorie`,`Segment`,`Marque`,`EAN`,`PCB`,`Nomproduit`,`Statut`,`Enseigne`,`Refdrive`,`SCA`,`Magasin`,`Adresse`,`CP`,`Ville`,`Visite`,`Div`,`Vendeur`,`CV`,`ManqueAGagner`,`dataJour`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE dataJour=VALUES(dataJour);
pourquoi j'ai rien dans values ?
Partager