Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - Eseguire query multiple contenute in un file .sql (aiuto)
Forum - PHP - Eseguire query multiple contenute in un file .sql (aiuto)

Avatar
Raffa50 (Normal User)
Pro


Messaggi: 68
Iscritto: 07/12/2008

Segnala al moderatore
Postato alle 14:02
Sabato, 03/07/2010
Salve ho realizzato uno script in php (sotto per il codice) che importa una query sql

praticamente importa un'intero database mysql, sostituendo %PREFIX% con il nome della tabella nel database scelto

pultroppo mi sono reso conto che non funziona più, forse perchè il file sql è troppo grosso.

codice:

proc.php
Codice sorgente - presumibilmente Php

  1. function mysql_exec_batch ($p_query, $p_transaction_safe = true) {
  2.   if ($p_transaction_safe) {
  3.       $p_query = 'START TRANSACTION;' . $p_query . '; COMMIT;';
  4.     };
  5.   $query_split = preg_split ("/[;]+/", $p_query);
  6.   foreach ($query_split as $command_line) {
  7.     $command_line = trim($command_line);
  8.     if ($command_line != '') {
  9.       $query_result = mysql_query($command_line);
  10.       if ($query_result == 0) {
  11.         break;
  12.       };
  13.     };
  14.   };
  15.   return $query_result;
  16.         }
  17.        
  18.         function createDB() {
  19.                 mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS);
  20.                 mysql_select_db(SQL_DB);
  21.                
  22.                 $str = file_get_contents("phpsge-base016.sql");
  23.                 $str = preg_replace("'%PREFIX%'",$_POST['prefix'],$str);
  24.  
  25.                 $result = mysql_exec_batch($str);
  26.                
  27.         }



do.php
Codice sorgente - presumibilmente Plain Text

  1. include("proc.php");
  2. include("../config.php");
  3. createDB();
  4. header("Location: adm_register.php");



phpsge-base016.sql
Codice sorgente - presumibilmente Php

  1. CREATE TABLE IF NOT EXISTS `%PREFIX%ally` (
  2.   `id` int(15) NOT NULL auto_increment,
  3.   `name` varchar(25) NOT NULL,
  4.   `owner` int(15) NOT NULL default '0',
  5.   `points` int(25) NOT NULL default '0',
  6.   PRIMARY KEY  (`id`)
  7. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;
  8.  
  9. CREATE TABLE IF NOT EXISTS `%PREFIX%bque` (
  10.   `id` int(50) NOT NULL auto_increment,
  11.   `city` int(30) default '0',
  12.   `func` varchar(15) NOT NULL,
  13.   `lv` int(10) default '0',
  14.   `end` int(20) default '0',
  15.   PRIMARY KEY  (`id`)
  16. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
  17.  
  18. CREATE TABLE IF NOT EXISTS `%PREFIX%builds` (
  19.   `id` int(15) NOT NULL auto_increment,
  20.   `lev` int(15) NOT NULL,
  21.   `planet` int(15) NOT NULL,
  22.   `func` varchar(15) NOT NULL,
  23.   PRIMARY KEY  (`id`),
  24.   UNIQUE KEY `func` (`func`)
  25. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=40 ;
  26.  
  27. CREATE TABLE IF NOT EXISTS `%PREFIX%city` (
  28.   `id` int(15) NOT NULL auto_increment,
  29.   `owner` int(15) NOT NULL,
  30.   `name` varchar(30) NOT NULL,
  31.   `res1` double NOT NULL default '0',
  32.   `res2` double NOT NULL default '0',
  33.   `last_update` int(20) NOT NULL,
  34.   `galaxy` int(15) default '0',
  35.   `system` int(15) default '0',
  36.   `pos` int(15) default '0',
  37.   `img` varchar(35) default 'null.gif',
  38.   PRIMARY KEY  (`id`)
  39. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
  40.  
  41. CREATE TABLE IF NOT EXISTS `%PREFIX%cmsg` (
  42.   `id` int(10) unsigned NOT NULL auto_increment,
  43.   `username` varchar(255) default NULL,
  44.   `msg` varchar(255) default NULL,
  45.   `color` varchar(1) default NULL,
  46.   `sent_on` timestamp NULL default CURRENT_TIMESTAMP,
  47.   PRIMARY KEY  (`id`)
  48. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
  49.  
  50. CREATE TABLE IF NOT EXISTS `%PREFIX%conf` (
  51.   `news1` tinytext,
  52.   `res1` varchar(10) NOT NULL,
  53.   `prr1` int(10) NOT NULL default '5',
  54.   `res2` varchar(10) NOT NULL,
  55.   `prr2` int(10) NOT NULL default '0',
  56.   `start_res1` int(5) NOT NULL default '100',
  57.   `start_res2` int(5) NOT NULL default '100',
  58.   `sge_ver` varchar(5) NOT NULL default '013'
  59. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  60.  
  61. INSERT INTO `%PREFIX%conf` (`news1`, `res1`, `prr1`, `res2`, `prr2`, `start_res1`, `start_res2`, `sge_ver`) VALUES ('Your news Here, you can edit it in the admin cp -> game config', 'gold', 5, 'mana', 1, 100, 100, '016');
  62.  
  63. CREATE TABLE IF NOT EXISTS `%PREFIX%races` (
  64.   `id` int(15) NOT NULL auto_increment,
  65.   `rname` varchar(15) NOT NULL default 'x',
  66.   `rdesc` tinytext NOT NULL,
  67.   `img` varchar(30) NOT NULL default 'null.gif',
  68.   PRIMARY KEY  (`id`)
  69. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
  70.  
  71. INSERT INTO `%PREFIX%races` (`id`, `rname`, `rdesc`, `img`) VALUES (1, 'race1', 'race1', 'achon.jpg');
  72.  
  73. CREATE TABLE IF NOT EXISTS `%PREFIX%tutorial` (
  74.   `id` int(10) NOT NULL auto_increment,
  75.   `tittle` text NOT NULL,
  76.   `body` text NOT NULL,
  77.   `next_tut` int(10) NOT NULL default '2',
  78.   PRIMARY KEY  (`id`)
  79. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
  80.  
  81. INSERT INTO `%PREFIX%tutorial` (`id`, `tittle`, `body`, `next_tut`) VALUES (1, 'Welcome', 'Welcome to phpsge! this is the tutorrial', 2);
  82.  
  83. CREATE TABLE IF NOT EXISTS `%PREFIX%t_builds` (
  84.   `id` int(15) NOT NULL auto_increment,
  85.   `name` varchar(30) NOT NULL default 'barraks',
  86.   `func` varchar(35) NOT NULL default 'barraks',
  87.   `img` varchar(30) NOT NULL default 'null.gif',
  88.   `desc` tinytext,
  89.   `c_res1` int(10) NOT NULL default '0',
  90.   `c_res2` int(10) NOT NULL default '0',
  91.   `time` int(30) NOT NULL,
  92.   PRIMARY KEY  (`id`)
  93. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
  94.  
  95. INSERT INTO `%PREFIX%t_builds` (`id`, `name`, `func`, `img`, `desc`, `c_res1`, `c_res2`, `time`) VALUES
  96. (2, 'gold mine', 'res1', 'null.gif', 'gold mine', 50, 0, 0),
  97. (1, 'barraks', 'barraks', 'barraks.gif', 'barracks', 70, 0, 0),
  98. (3, 'mana pool', 'res2', 'null.gif', 'mana pool', 50, 0, 0);
  99.  
  100. CREATE TABLE IF NOT EXISTS `%PREFIX%t_research` (
  101.   `id` int(15) NOT NULL auto_increment,
  102.   `name` varchar(25) NOT NULL,
  103.   `img` varchar(30) NOT NULL default 'null.gif',
  104.   `c_res1` int(5) NOT NULL,
  105.   `c_res2` int(5) NOT NULL,
  106.   PRIMARY KEY  (`id`)
  107. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
  108.  
  109. INSERT INTO `%PREFIX%t_research` (`id`, `name`, `img`, `c_res1`, `c_res2`) VALUES (1, 'magic servant', 'null.gif', 50, 100);
  110.  
  111. CREATE TABLE IF NOT EXISTS `%PREFIX%t_unt` (
  112.   `id` int(15) NOT NULL auto_increment,
  113.   `name` varchar(10) NOT NULL,
  114.   `race` int(5) NOT NULL default '1',
  115.   `img` varchar(30) NOT NULL default 'null.gif',
  116.   `atk` int(5) NOT NULL default '5',
  117.   `dif` int(5) NOT NULL default '5',
  118.   `vel` int(5) NOT NULL default '5',
  119.   `c_res1` int(5) NOT NULL default '0',
  120.   `c_res2` int(5) NOT NULL default '0',
  121.   `etime` int(10) NOT NULL,
  122.   `desc` text NOT NULL,
  123.   PRIMARY KEY  (`id`)
  124. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
  125.  
  126. INSERT INTO `%PREFIX%t_unt` (`id`, `name`, `race`, `img`, `atk`, `dif`, `vel`, `c_res1`, `c_res2`, `etime`, `desc`) VALUES (1, 'milita', 1, 'milita.gif', 5, 5, 5, 5, 0, 0, 'a simple soldier');
  127.  
  128.  
  129. CREATE TABLE IF NOT EXISTS `%PREFIX%umsg` (
  130.   `from` int(15) NOT NULL,
  131.   `to` int(15) NOT NULL,
  132.   `mtit` varchar(15) default NULL,
  133.   `text` text NOT NULL,
  134.   `read` tinyint(1) NOT NULL default '0'
  135. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  136.  
  137. CREATE TABLE IF NOT EXISTS `%PREFIX%units` (
  138.   `id` int(15) NOT NULL auto_increment,
  139.   `id_unt` int(15) NOT NULL default '0' COMMENT 'id unità',
  140.   `uqnt` int(5) NOT NULL default '0' COMMENT 'quante unità',
  141.   `owner_id` int(30) NOT NULL default '0',
  142.   `from` int(15) default NULL,
  143.   `to` int(15) default NULL,
  144.   `where` int(15) default NULL,
  145.   `time` int(35) default '0',
  146.   `action` int(5) NOT NULL default '0',
  147.   PRIMARY KEY  (`id`)
  148. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
  149.  
  150. CREATE TABLE IF NOT EXISTS `%PREFIX%uque` (
  151.   `id` int(20) NOT NULL auto_increment,
  152.   `id_unt` int(15) NOT NULL default '0' COMMENT 'id unità',
  153.   `uqnt` int(5) NOT NULL default '0' COMMENT 'quante unità',
  154.   `planet` int(15) NOT NULL default '0',
  155.   `end` varchar(15) NOT NULL default '0',
  156.   PRIMARY KEY  (`id`),
  157.   KEY `id` (`id`)
  158. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=19 ;
  159.  
  160. CREATE TABLE IF NOT EXISTS `%PREFIX%users` (
  161.   `id` int(15) NOT NULL auto_increment,
  162.   `username` varchar(15) NOT NULL,
  163.   `password` varchar(32) NOT NULL default '0',
  164.   `race` int(5) NOT NULL default '0',
  165.   `capcity` int(30) NOT NULL,
  166.   `ally_id` int(15) NOT NULL default '0',
  167.   `email` varchar(30) NOT NULL,
  168.   `timestamp_reg` int(11) NOT NULL,
  169.   `points` int(15) default '0',
  170.   `sessid` int(32) NOT NULL,
  171.   `rank` int(5) NOT NULL default '0',
  172.   `active` varchar(2) default NULL,
  173.   `banned` tinyint(1) NOT NULL default '0',
  174.   `last_log` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  175.   `tut` tinyint(1) NOT NULL default '0',
  176.   PRIMARY KEY  (`id`)
  177. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;



aiuto grazie

Ultima modifica effettuata da Raffa50 il 03/07/2010 alle 14:03


programmatore Php, mysql, VB, Pascal, javascript, html, C++ (devo aggiornarmi sono al c++ 6 for dummies!), java, flasch/AS, python (imparando)
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 15:09
Sabato, 03/07/2010
che errore restituisce?


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
Raffa50 (Normal User)
Pro


Messaggi: 68
Iscritto: 07/12/2008

Segnala al moderatore
Postato alle 12:16
Venerdì, 06/08/2010
... ho pulito l'sql pare funzioni...

a volte si bloccava a qualche tabella e non iportava tutto


programmatore Php, mysql, VB, Pascal, javascript, html, C++ (devo aggiornarmi sono al c++ 6 for dummies!), java, flasch/AS, python (imparando)
PM Quote