LOAD DATA LOCAL INFILE avec table temporaire et update et insert
Bonjour,
j'ai créer un formulaire qui inserer avec LOAD DATA LOCAL INFILE les données d'une table temporaire si tout se passe bien, aucune erreur je voudrai mettre a jour ces données avec ma vrai table.
Et c'est la que je bloque voici mon code actuel:
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
| $file_csv = $_FILES['file']['tmp_name'];
$pdo_extraParams = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // rapport d'erreurs sous forme d'exceptions
PDO::ATTR_PERSISTENT => true, // Connexions persistantes
PDO::MYSQL_ATTR_LOCAL_INFILE => true // encodage UTF-8
);
// Instancie la connexion
if (isset($_FILES['file']) && $_FILES['file']['error'] == 0)
{
/*vide la table temporaire*/
$sql_vide = 'TRUNCATE TABLE servicepublic_temporaire ';
$pdo->exec($sql_vide);
$fichier = $_FILES['file']['tmp_name'];
//Chargement fichier CSV
$sql = "LOAD DATA LOCAL INFILE '$file_csv'
INTO TABLE servicepublic_temporaire
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES";
$pdo->exec($sql);
$sql_update = 'SHOW COLUMNS FROM servicepublicv1;
update servicepublicv1 SELECT nom_service_public,adresse,code_postal,commune,telephone,fax,email,url FROM servicepublic_temporaire
where servicepublicv1.id_service = servicepublic_temporaire.id_service'
;
$pdo->exec($sql_update);
$sql_insert = 'SHOW COLUMNS FROM servicepublicv1;
INSERT INTO ef_servicepublicv1 SELECT nom_service_public,adresse,code_postal,commune,telephone,fax,email,url FROM servicepublic_temporaire
ON DUPLICATE KEY UPDATE id_service = VALUES(id_service)'
;
$pdo->exec($sql_insert);
} |
la page me renvoi "14 Cannot execute queries while other unbuffered queries are active."
1/ ce qui me manque c est verifier que tout s est bien passe dans le remplissage de la table temporaire pour faire ensuite la copy dans la table servicepublicv1
2/ Et que lors de la copy des donnés de la tabe temporaire a la table servicepublic1 deja rempli de l'ancienne modification;
Une modification des colonnes deja présentes s effectue et si il y'a de nouvelle lignes l'insertion de nouvelles lignes sachant que j'ai un id_service au debut autocomplete.
merci pour votre aide.