[Réglé] Importer un dump sql via une page php = bug

Importer un dump sql via une page php = bug [Réglé] - PHP - Programmation

Marsh Posté le 26-07-2007 à 23:08:05    

hello ^^
 
j'ai un soucis avec php et mysql, en effet j'aimerais pouvoir importer des dump crées avec phpmyadmin via une page php.
 
exemple, j'ai ici le dump sql d'un wordpress tout neuf :  

Code :
  1. $import = "
  2. CREATE TABLE `wp_categories` (
  3.   `cat_ID` bigint(20) NOT NULL auto_increment,
  4.   `cat_name` varchar(55) NOT NULL default '',
  5.   `category_nicename` varchar(200) NOT NULL default '',
  6.   `category_description` longtext NOT NULL,
  7.   `category_parent` bigint(20) NOT NULL default '0',
  8.   `category_count` bigint(20) NOT NULL default '0',
  9.   `link_count` bigint(20) NOT NULL default '0',
  10.   `posts_private` tinyint(1) NOT NULL default '0',
  11.   `links_private` tinyint(1) NOT NULL default '0',
  12.   PRIMARY KEY  (`cat_ID`),
  13.   KEY `category_nicename` (`category_nicename`)
  14. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
  15. INSERT INTO `wp_categories` (`cat_ID`, `cat_name`, `category_nicename`, `category_description`, `category_parent`, `category_count`, `link_count`, `posts_private`, `links_private`) VALUES
  16. (1, 'Non classé', 'non-classe', '', 0, 1, 0, 0, 0),
  17. (2, 'Blogoliste', 'blogoliste', '', 0, 0, 7, 0, 0);
  18. [...]
  19. ";


 
j'ai volontairement tronqué le fichier...
 
j'ai ensuite ce code pour exécuter la requête :  

Code :
  1. $wpsql = mysql_query($import);
  2.     if (!$wpsql) {echo "Erreur SQL : ".mysql_error();}


 
le problème est que CREATE TABLE `wp_categories`... est exécuté, mais INSERT INTO `wp_categories... et tout le reste ne l'est pas :/
 
quelqu'un aurait une solution pour me débloquer?


Message édité par ooterreuroo le 27-07-2007 à 14:53:01

---------------
204 - No Content
Reply

Marsh Posté le 26-07-2007 à 23:08:05   

Reply

Marsh Posté le 27-07-2007 à 02:38:45    

En fait, PHP ne permet pas l'exécution de plusieurs requêtes au sein d'un même mysql_query, faut donc découper la requête en morceaux.
 
Ou utiliser des scripts/logiciels qui le font automatiquement.

Reply

Marsh Posté le 27-07-2007 à 02:46:58    

la solution 2 me parait la plus adaptée, je ne vais pas m'amuser a découper les requêtes pour tout les scripts que je vais utiliser :/ (le but étant de pouvoir installer automatiquement un script sur le serveur)
 
j'ai réussi a :
créer la base de données
créer un utilisateur pour mysql
assigner l'utilisateur à la base mysql
les fichiers sont copiés a partir d'un espèce de ghost (répertoire contenant le script propre)
le fichier config.php (ils ne portent pas tous ce nom) est modifié avec les bons paramètres
 
et la c'est trop bête, je bloque sur la dernière étape : importer un dump sql "propre" :/


Message édité par ooterreuroo le 27-07-2007 à 02:47:59

---------------
204 - No Content
Reply

Marsh Posté le 27-07-2007 à 14:54:28    

finalement j'ai trouvé un moyen...
 
un petit exec avec ceci :  

mysql.exe -u user -ppass -h localhost -D basesql < d:/test/test.sql


 
fonctionne a 100%


Message édité par ooterreuroo le 27-07-2007 à 14:54:42

---------------
204 - No Content
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed