Encodage bloquant pour MySQL
Résolu/Fermé69goo Messages postés 2 Date d'inscription samedi 9 avril 2022 Statut Membre Dernière intervention 15 novembre 2022 - 15 nov. 2022 à 16:48
- Encodage bloquant pour MySQL
- Encodage ascii - Guide
- Mysql community server - Télécharger - Bases de données
- Mysql gratuit ou payant - Forum MySQL
- Mysql error 1 ✓ - Forum Réseaux sociaux
- Encodage binaire - Guide
3 réponses
5 oct. 2022 à 09:10
Bonjour
Ce symbole, apparait dans les données sources ou après l'import ?
Vu que tu nous dis devoir importer le fichier tel quel sans traitement... si il est dans les données sources... il sera aussi dans la bdd une fois importé.
Et puis tu dis bloquant.. c'est à dire ? Tu as un message d'erreur ? ça refuse de s'importer ?
Tu dis également : En plus de l'espace entre le 1 et le 0, il y a un Â, que voici : -1Â 263,02
Mais 'il n'y a pas de 1 suivi de 0 ...
Sachant que sans voir ton code ni les éventuels messages d'erreur... impossible de t'en dire plus...
Bonjour Jordane45,
Pas de soucis pour tes demandes de précisions.
Ce symbole est dans les données sources.
"si il est dans les données sources... il sera aussi dans la bdd une fois importé." : quand je dis "importer en BDD comme tel, sans aucun retraitement.", c'est juste que je ne modifie pas le fichier. Bien sûr que pour l'import, il y a un script php et mysql et l'ajout de fonctions, comme écrit dans mon poste.
Et par bloquant, je veux dire que l'import des lignes dans la BDD se fait bien, jusqu'à la ligne contenant ce caractère. Cette ligne et les suivante ne sont pas importées. Il n'y a pas de message d'erreur.
Et pour la chipoterie (^^) du zéro, il suffit de lire le premier paragraphe ou je parle de "1 000" et qu'ensuite je mets une image. Que ce soit un 0 ou un 2 après l'unité du mille, l'idée reste la même.
Je n'ai certes pas mis de code, mais les fonctions testées. Tu veux voir tous les essais ? avec chacune des fonctions ?
Voici déjà ça pour l'instant
$date = implode('-', array_reverse(explode('/', $getData[0]))); $description = mysqli_real_escape_string($mysqli, $getData[3]); $montant_brut = str_replace(',', '.', $getData[5]); $commission = str_replace(',', '.', $getData[6]); $montant_net = str_replace(',', '.', $getData[7]); $solde = str_replace(',', '.', $getData[8]); $nom = $getData[11]; $tva = str_replace(',', '.', $getData[15]); $frais_livr = str_replace(',', '.', $getData[14]); $sql = "INSERT INTO " . $_SESSION["table"] . " (date, heure, fuseau, description, devise, montant_brut, commission, montant_net, solde, num_transaction, email, nom, nom_banque, compte_b, frais_livraison, tva, num_facture, num_reference) VALUES ('".$date."','".$getData[1]."','".$getData[2]."','".$description."','".$getData[4]."','".$montant_brut."','".$commission."','".$montant_net."','".$solde."','".$getData[9]."','".$getData[10]."','".$nom."','".$getData[12]."','".$getData[13]."','".$frais_livr."','".$tva."','".$getData[16]."','".$getData[17]."')"; if(!mysqli_query($mysqli, $sql)) { echo "<script type='text/javascript'> alert(\"Erreur INSERT MySQL : " . mysqli_error($mysqli) ."\"); window.location = \"accounting.php#" . $_SESSION["fis_ref"] . "\" </script>"; } else { echo "<script type=\"text/javascript\"> alert(\"Importation REUSSIE !\"); window.location = \"accounting.php#" . $_SESSION["fis_ref"] . "\" </script>"; }
15 nov. 2022 à 16:48
Ce fut long, mais voici la solution dont la source est ici :
$montant_brut = str_replace(',', '.', preg_replace('/\s+/u', '', $sheetData[$i][7]));