2010-04-05 7 views
0

J'ai un fichier MySQL que je veux importer via PHP 5.Importer un fichier MySQL en PHP

Au nom de l'utilisateur convivialité l'utilisateur ne doit pas utiliser des outils comme phpMyAdmin etc. Il suffit de frapper un bouton et le fichier être importé.

J'ai déjà créé du code pour télécharger le fichier vers un emplacement sur le serveur.

Le fichier ressemble à ceci:

INSERT INTO products VALUES ('', '0', '10', '', '1', 'be34112', '4536.jpg', '','','','0'); 
SET @master_id = LAST_INSERT_ID(); 
INSERT INTO products_description VALUES ('', '1', @master_id, '1', 'Kjole', '', 'beskrivelse', '2000', '25', 'kjole.xml', '', '', ''); 
INSERT INTO products_to_categories VALUES ('',@master_id,'5'); 
INSERT INTO products VALUES ('', @master_id, '10', '12', '1', 'be34112', '4536.jpg', '200','','','0'); 
SET @variant_id = LAST_INSERT_ID(); 
INSERT INTO products_description VALUES ('', '1', @variant_id, '1', 'Kjole', '', 'beskrivelse', '2000', '25', 'kjole.xml', '', '', ''); 
INSERT INTO options_to_products VALUES ('', @variant_id, '1', '1'); 
INSERT INTO options_to_products VALUES ('', @variant_id, '', '2'); 
INSERT INTO products VALUES ('', @master_id, '20', '17', '1', 'be34113', '4537.jpg', '200','','','0'); 
SET @variant_id = LAST_INSERT_ID(); 
INSERT INTO products_description VALUES ('', '1', @variant_id, '1', 'Kjole', '', 'beskrivelse æøå ÆØÅ & íjj´¨¨¨¨fdfd""', '3000', '25', 'kjole.xml', '', '', ''); 
INSERT INTO options_to_products VALUES ('', @variant_id, '1', ''); 
INSERT INTO options_to_products VALUES ('', @variant_id, '', '4'); 
+2

n'est-il pas dangereux d'importer du code d'étrangers ...? – knittl

+1

Ce code ne vient pas d'étrangers. C'est le code que mon système génère. Raison pourquoi je le fais de cette façon est sans importance pour la question :) – Cudos

+0

Devrait-il produire un fichier "lot SQL" alors? Impossible de stocker les requêtes dans un format plus facile à analyser/séparer à nouveau? Par exemple. via var_export()? Ou -si le fichier peut potentiellement devenir grand- dans un format qui vous permet de lire les instructions une par une (ou en morceaux)? – VolkerK

Répondre

3

Chargez le fichier dans une chaîne et passer ensuite à mysqli::multi_query().

Les clauses de non-responsabilité standard concernant les sources non fiables pour les données/requêtes/code-exécutable et autres s'appliquent.

0

Avec très gros fichiers, je aurais tendance à essayer de me séparer les fichiers. J'ai demandé a similar question il y a quelques temps et j'ai obtenu de très bons résultats.

Questions connexes