pas grave ca l'id c'est pas importantJe n'ai pas d'erreur je patiente et rien ne se passe. Et c'est vrai que je peux l'optimiser un petit peu histoire que le traitement se fasse plus vite. Pour l'autoincrementation, c'est surtout lorsqu'un enregistrement est supprimé. Par exemple (dernier enreg 165 supprimé, le suivant ne va pas etre 165 mais 166) tu vois ce que je veux dire?
Et pour lire qu'une colone je vais le faire de suite.
ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL | E_STRICT);
ou les valeur direct dans ton php.ini
$chemin = $_FILES['fic_man']['tmp_name'];
$link = mysqli_connect('', '','', '');
$file = new SplFileObject($chemin);
$file->setFlags(SplFileObject::READ_CSV);
$file->setCsvControl(';');
$stmt = mysqli_prepare($link, "REPLACE INTO jos_vm_manufacturer SET mf_name = ?");
foreach ($file as $row)
{
mysqli_stmt_bind_param($stmt, 's', $row[0]);
mysqli_stmt_execute($stmt);
}
exact, ensuite on fait un requete preparer, c'est un peux comme un template de requête dans laquelle y'a on change juste une valeurDésolé hier je suis parti sans posté mon au revoir. Merci pour la version optimisée ^^ c'est gentil. Je ne suis pas un as de l'objet mais si je comprends bien on créé l'objet $file, on le lit grace à ça "setFlags(SplFileObject::READ_CSV);", on lui indique le separateur "$file->setCsvControl(';')" par contre la suite j'ai du mal...
REPLACE jos_vm_manufacturer SET mf_name = ?
REPLACE c'est comme un mélange de INSERT INTO et d'UPDATE, en gros si ca existe on fait un UPDATE si ca existe pas on fait un INSERT INTO
si forcement mais beaucoup beaucoup moins en requête préparer, puisque c'est pas une nouvelle requête a chaque fois, après faudrais afficher les erreur pour voir ce qui se passe avec mysqli_stmt_errorMais ça ne fait pas perdre du temps a l'exécution de faire un UPDATE ou INSERT à chaque ligne du fichier ??
Et j'ai executé le code mais rien ne s'est passé je vais regarder ça...
ouia c'est une sorte de cache si on veux (t'aura plus d'info ici)Ok ok je comprends mieux, c'est une sorte de cache non? Pour ce qui est des erreurs, rien ne s'affiche, mais rien ne s'insert dans la DB. J'ai regardé la syntaxe de "REPLACE INTO", si c'est une insertion ne faut-il pas faire "REPLACE INTO [table] (champs) VALUES (valeur)" ? Et pour un Update comment sait-il le quel changer, car on ne lui met pas de condition...
bizarre ca, limite change ton upload_tmp_dirJe crois que le problème vient de la récupération du fichier, il ne doit pas le trouver. Quand je fais un echo du $chemin ça ram terrible. C'est ça qui fait planter je pense.
<pre>
<?php
print_r($_FILES);
EDIT : juste au cas où, si ton serveur mysql est en localhost, change localhost par 127.0.0.1 dans ta connexion
ta un numéro d'erreur ?Ha non c'est encore plus étrange la. C'est aléatoire des fois ça marche des fois non...mais je ne récupère tout de même pas le chemin temporaire.