INSERT suite à un import CSV
Bonjour,
Je suis confronté au problème suivant :
Dans le code ci-dessous, j'importe un fichier csv dans une table mysql.
Pas de souci à l'affichage du résultat dans le HTML, pas de souci pour l'insert des lignes, SAUF le champ décimal défini à 10,2 dans lequel je n'enregistre rien (valeur reste égale à 0,00).
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| switch($_POST['remise']){
case 'Importer toutes les remises' :
if (isset($_FILES["selectedFileRemise"]["type"]) != "application/vnd.ms-excel") {
die("Ce n'est pas un fichier de type .csv");
} elseif (is_uploaded_file($_FILES['selectedFileRemise']['tmp_name'])) {
$db = Database::connect();
try{
$toutsupprimer= $db->prepare("DELETE FROM remise_distributeur WHERE code != 0");
$toutsupprimer->execute();
$statementPrix = $db->prepare("INSERT INTO remise_distributeur (code, nom, remise) values(?,?,?)");
}
catch(Exception $e)
{
echo "Une erreur est survenue dans la connexion (table tmp_import_remise). Message d'erreur : ".$e->getMessage();
}
$file = new SplFileObject($_FILES['selectedFileRemise']['tmp_name']);
$file->setFlags(SplFileObject::READ_CSV | SplFileObject::SKIP_EMPTY | SplFileObject::READ_AHEAD);
$file->setCsvControl(';') ;
echo (<<<eof
<div class='container'>
<H1> Remises ajoutées </H1>
</div>
<div class='container'>
<table class='table table-striped' >
<thead>
<tr>
<th scope = 'col'>Code</th>
<th scope = 'col'>Nom</th>
<th scope = 'col'>Remise</th>
</tr>
</thead>
<tbody>
eof
);
foreach ($file as $row) {
$statementPrix->execute([$row[0], $row[1], $row[2]]);
echo (<<<etf
<tr>
<td>$row[0]</td>
<td>$row[1]</td>
<td>$row[2]</td>
</tr>
etf
);
}
Database::disconnect();
}
break; |
A noter que cela fonctionne parfaitement dans une table identique pour les 'articles'. Le CSV n'est pas le même évidement, l'origine du problème ?