Mysqldump to PHP Converter

G

Guest

Hey,

Gibt es ein Script/Programm/oder ähnliches, womit ich ein mysqldump von phpmyadmin in PHP konventieren kann? Also in ein "PHP Setup Script"?

Wo dann die ganzen Mysql-querys drin sind und ich die Seite nur noch aufrufen brauche und er die Datenbank erstellt incl Tabellen usw :)

Ich könnte es auch selber schreiben, aber dann sitze ich noch bis übermorgen dran :)
 
Scherz?

Ist das jetzt eine ernst gemeinte Frage?
Wenn ja, dann *GRML*

Man nehme einfach den Code aus mysqldump (ist ja wiederum abhängig vonden Parametern) und mache etwas in der Art wie

<?php

mysql_connect($host, $username, $passwort);
mysql_query("$inhalt_von_mysqldump");

?>

Mir ist klar, dass das obrige nicht vollständig und schon gar nicht vollständig richtig ist. Es soll auch nur die Einfachheit der Aufgabenlösung verdeutlichen.


Ansonsten ist mir nichts fertiges bekannt.
 
@Kesar_Neron: Das weiß ich auch :)

Aber das scheitert oft am Syntax usw usf. Den ich müsste dann xy viele mysql_querys machen :) Bzw den mysqldump auseinander frickeln =/
 
Ich schreibe mal was. :)

//edit: Gut, Kesar_Neron sagt es, so würde ich das auch machen.
 
Tblue: Ja, aber man kann es nicht so machen >

mysql_query("$kompletter_inhalt_des_dumps_mit_allen_creates_usw");

Sonst müsste wie ich es schon sagte alles auseinander frickeln..
 
Naja, wenn du nur bestimmte Dinge aus dem Dump willst, musst du das wohl oder übel bearbeiten und dann importieren (per Shell oder per PMA o. ä.).
 
  • Dump einlesen
  • Kommentare rausfiltern
  • mit explode() bei jeden Semikolon abhacken
  • mit schleife das array was explode() liefert durchlaufen und query für query abarbeiten
 
Hi,

wie ist denn die Form, eines solchen Dumps, dass es so kompliziert ist?
 
Hey, ich hab zufällig eine lösung gefunden! :)

Navicat kann das was ich wollte.

Einfach rechtsklick auf die Tabelle, und dann auf "Tabelleninfos". Dann auf "DDL".

Da steht dann z.b sowas >
Code:
CREATE TABLE `accounts` (
  `ID` int(10) NOT NULL auto_increment,
  `name` varchar(20) character set latin1 NOT NULL,
  `vorname` text character set latin1,
  `nachname` text character set latin1,
  `icq` text character set latin1,
  `msn` text character set latin1,
  `jabber` text character set latin1,
  `email` text character set latin1,
  `website` text character set latin1,
  `password` varchar(100) character set latin1 NOT NULL,
  `admin` varchar(1) character set latin1 default NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Darum macht man einfach:
Code:
if (mysql_query("CREATE TABLE `accounts` (
  `ID` int(10) NOT NULL auto_increment,
  `name` varchar(20) character set latin1 NOT NULL,
  `vorname` text character set latin1,
  `nachname` text character set latin1,
  `icq` text character set latin1,
  `msn` text character set latin1,
  `jabber` text character set latin1,
  `email` text character set latin1,
  `website` text character set latin1,
  `password` varchar(100) character set latin1 NOT NULL,
  `admin` varchar(1) character set latin1 default NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8")) {
echo ("-Tabelle Accounts erfolgreich angelegt");
} else {
printf ("-Fehler beim Anlegen der Datenbank: %s\n", mysql_error ());
die;
}

Danke trotzdem für die Infos :)
 
Und genau das habe ich dir gestern Stundenlang versucht zu erklären....
*kopfschüttel*
 
Und genau das habe ich dir gestern Stundenlang versucht zu erklären....
*kopfschüttel*

Echt? xD

Sry, hab ich dann wohl nicht Verstanden :)

Naja, mein Install script sieht nun so aus >
Code:
<?php
echo <<<EOT
<div align="left"><b>EviCMS Installation</b></div><table><hr></table>
<form id="install" name="install" method="post" action="install.php">     
  <table>   
    <tr>     
      <td><div align="left"><tc>Datenbank Name:</tc></div></td>     
      <td><input name="dbname" type="text" class="liteoption" id="dbname" size="25" maxlength="25" /></td>     
      <td>//Den Namen der Datenbank eingeben wo das CMS installiert werden soll</td>
	</tr>  
    <tr>     
      <td><div align="left"><tc>Datenbank User:</tc></div></td>     
      <td><input name="dbuser" type="text" class="liteoption" id="dbuser" size="25" maxlength="25" /></td>     
      <td>//Den User der Zugriff auf die Datenbanken hat</td>
	</tr> 	
    <tr>     
      <td><div align="left"><tc>Datenbank Passwort:</tc></div></td>     
      <td><input name="dbpass" type="password" class="liteoption" id="dbpass" size="25" maxlength="25" /></td>     
      <td>//Das Passwort des Datenbank Users</td>
	</tr>
    <tr>
    <tr>     
      <td><div align="left"><tc>Datenbank Host:</tc></div></td>     
      <td><input name="dbhost" type="text" class="liteoption" value="localhost" id="dbhost" size="25" maxlength="25" /></td>     
      <td>//Der Server/PC worauf Mysql läuft (Standard lassen, nur ändern wenn nötig!)</td>
	</tr>     
    <tr>     
      <td><div align="left"><tc>CMS Pfad:</tc></div></td>     
      <td><input name="cmspfad" type="text" class="liteoption" id="cmspfad" size="25"/></td>     
      <td>//Den kompletten Pfad eingeben wo das CMS liegt</td>
	</tr>   
    <tr>     
      <td><div align="left"><tc>Download Ordner:</tc></div></td>     
      <td><input name="dlordner" type="text" class="liteoption" id="dlordner" size="25" maxlength="25" /></td>     
      <td>//Der Ordner wo die Downloads hinkommen soll</td>
    </tr> 	
	<tr>     
      <td><div align="left"><tc>Admin Name:</tc></div></td>     
      <td><input name="adminname" type="text" class="liteoption" id="adminname" size="25"/></td>     
      <td>//Der Admin womit sie sich Zukünftig anmelden werden</td>
	</tr>   
	<tr>     
      <td><div align="left"><tc>Admin Passwort:</tc></div></td>     
      <td><input name="adminpw" type="password" class="liteoption" id="adminpw" size="25"/></td>     
      <td>//Das Passwort des Admin Accounts (<b>VORSICHT!</b> Das Passwort wird direkt eingetragen! Also überlegen Sie gut was sie eintippen!)</td>
	</tr>   
  </table>    
<input name="submit" type="submit" class="liteoption" id="login" value="Installiere das CMS!" size="15" maxlength="15" />     
    </form>
EOT;
if(isset($_POST['submit'])) {
echo("Installations Fortschritt:<br>");
if(!$_POST['dbname'] or !$_POST['dbuser'] or !$_POST['dbpass'] or !$_POST['dbhost'] or !$_POST['cmspfad'] or !$_POST['dlordner'] or !$_POST['adminname'] or !$_POST['adminpw']) {
echo("Bitte füllen Sie alles aus!!");
} else {
$sc1 = strip_tags($_POST['dbname']);  
$dbname = htmlspecialchars($sc1);
$sc2 = strip_tags($_POST['dbuser']);  
$dbuser = htmlspecialchars($sc2);
$sc3 = strip_tags($_POST['dbpass']);  
$dbpass = htmlspecialchars($sc3);
$sc4 = strip_tags($_POST['dbhost']);  
$dbhost = htmlspecialchars($sc4);
$sc5 = strip_tags($_POST['cmspfad']);  
$pfad = htmlspecialchars($sc5);
$sc6 = strip_tags($_POST['dlordner']);  
$ordner = htmlspecialchars($sc6);
$sc7 = strip_tags($_POST['adminname']);  
$adminname = htmlspecialchars($sc7);
$sc8 = strip_tags($_POST['adminpw']);  
$adminpw = htmlspecialchars(md5($sc8));
if (@mysql_connect($dbhost, $dbuser, $dbpass)) {
echo ("-Verbindung zu MySQL erfolgreich hergestellt<br>");
} else {
printf ("-Fehler beim Verbinden mit MySQL: %s\n", mysql_error ());
die;
}
if (mysql_query("CREATE DATABASE $dbname")) {
echo ("-Datenbank erfolgreich angelegt<br>");
mysql_select_db($dbname);
} else {
printf ("-Fehler beim Anlegen der Datenbank: %s\n", mysql_error ());
die;
}
if (mysql_query("CREATE TABLE `accounts` (
  `ID` int(10) NOT NULL auto_increment,
  `name` varchar(20) character set latin1 NOT NULL,
  `vorname` text character set latin1,
  `nachname` text character set latin1,
  `icq` text character set latin1,
  `msn` text character set latin1,
  `jabber` text character set latin1,
  `email` text character set latin1,
  `website` text character set latin1,
  `password` varchar(100) character set latin1 NOT NULL,
  `admin` varchar(1) character set latin1 default NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8")) {
echo ("-Tabelle Accounts erfolgreich angelegt<br>");
} else {
printf ("-Fehler beim Anlegen der Datenbank: %s\n", mysql_error ());
die;
}
if (mysql_query("CREATE TABLE `banner` (
  `ID` int(11) NOT NULL auto_increment,
  `file` text NOT NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8")) {
echo ("-Tabelle Banners erfolgreich angelegt<br>");
} else {
printf ("-Fehler beim Anlegen der Datenbank: %s\n", mysql_error ());
die;
}
if (mysql_query("INSERT INTO banner (file) VALUES ('evicms.png')") and mysql_query("INSERT INTO banner (file) VALUES ('evicms2.png')")) {
echo ("-Tabelle Banner erfolgreich befüllt<br>");
} else {
printf ("-Fehler beim Befüllen der Datenbank: %s\n", mysql_error ());
die;
}
if (mysql_query("CREATE TABLE `downloads` (
  `ID` int(255) NOT NULL auto_increment,
  `name` text character set latin1,
  `file` text character set latin1,
  `counter` text character set latin1,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8")) {
echo ("-Tabelle Downloads erfolgreich angelegt<br>");
} else {
printf ("-Fehler beim Anlegen der Datenbank: %s\n", mysql_error ());
die;
}
if (mysql_query("CREATE TABLE `guestbook` (
  `ID` int(11) NOT NULL auto_increment,
  `author` varchar(255) character set utf8 default NULL,
  `date` datetime default NULL,
  `text` text character set utf8,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8")) {
echo ("-Tabelle Guestbook erfolgreich angelegt<br>");
} else {
printf ("-Fehler beim Anlegen der Datenbank: %s\n", mysql_error ());
die;
}
if (mysql_query("CREATE TABLE `home` (
  `ID` int(255) NOT NULL,
  `visits` int(255) default NULL,
  `aufrufe` text character set latin1,
  `skin` text character set latin1,
  `cmsversion` text character set latin1,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8")) {
echo ("-Tabelle Home erfolgreich angelegt<br>");
} else {
printf ("-Fehler beim Anlegen der Datenbank: %s\n", mysql_error ());
die;
}
if (mysql_query("INSERT INTO home (visits, aufrufe, skin, cmsversion) VALUES ('0', '0', 'evi', 'SVN')")) {
echo ("-Tabelle Home erfolgreich befüllt<br>");
} else {
printf ("-Fehler beim Befüllen der Datenbank: %s\n", mysql_error ());
die;
}
if (mysql_query("CREATE TABLE `menu` (
  `ID` int(255) NOT NULL auto_increment,
  `url` varchar(50) character set latin1 default NULL,
  `name` text,
  `admin` int(1) default NULL,
  `extern` int(1) default NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8")) {
echo ("-Tabelle Menu erfolgreich angelegt<br>");
} else {
printf ("-Fehler beim Anlegen der Datenbank: %s\n", mysql_error ());
die;
}
if (
mysql_query("INSERT INTO menu (url, name, admin, extern) VALUES ('index.php?p=login', 'Login', '0', '0')") and
mysql_query("INSERT INTO menu (url, name, admin, extern) VALUES ('session.php?logout=1', 'Logout', '2', '0')") and
mysql_query("INSERT INTO menu (url, name, admin, extern) VALUES ('index.php?p=register', 'Anmelden', '0', '0')") and
mysql_query("INSERT INTO menu (url, name, admin, extern) VALUES ('index.php?p=news', 'News', '2', '0')") and
mysql_query("INSERT INTO menu (url, name, admin, extern) VALUES ('index.php?a=acp', 'ACP', '1', '0')") and
mysql_query("INSERT INTO menu (url, name, admin, extern) VALUES ('index.php?p=download', 'Downloads', '2', '0')") and
mysql_query("INSERT INTO menu (url, name, admin, extern) VALUES ('index.php?p=home', 'Home', '0', '0')") and
mysql_query("INSERT INTO menu (url, name, admin, extern) VALUES ('index.php?u=cp', 'UCP', '2', '0')") and
mysql_query("INSERT INTO menu (url, name, admin, extern) VALUES ('index.php?p=member', 'Mitgliederliste', '2', '0')") and
mysql_query("INSERT INTO menu (url, name, admin, extern) VALUES ('index.php?p=gbook', 'Guestbook', '2', '0')") and
mysql_query("INSERT INTO menu (url, name, admin, extern) VALUES ('http://www.jeegeek.de', 'Jeegeek', '0', '1')") and
mysql_query("INSERT INTO menu (url, name, admin, extern) VALUES ('index.php?p=stats', 'Statistik', '2', '0')") and
mysql_query("INSERT INTO menu (url, name, admin, extern) VALUES ('index.php?p=banner', 'Banners', '2', '0')")
) {
echo ("-Tabelle Menu erfolgreich befüllt<br>");
} else {
printf ("-Fehler beim Befüllen der Datenbank: %s\n", mysql_error ());
die;
}
if (mysql_query("CREATE TABLE `news` (
  `ID` int(255) NOT NULL auto_increment,
  `author` text,
  `date` datetime default NULL,
  `beschreibung` text character set latin1 collate latin1_german1_ci,
  `text` text character set latin1 collate latin1_general_cs,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8")) {
echo ("-Tabelle News erfolgreich angelegt<br>");
} else {
printf ("-Fehler beim Anlegen der Datenbank: %s\n", mysql_error ());
die;
}
if (mysql_query("CREATE TABLE `newscomment` (
  `ID` int(10) NOT NULL auto_increment,
  `newsid` int(10) default NULL,
  `author` text,
  `text` text,
  `date` datetime default NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8")) {
echo ("-Tabelle Newscomment erfolgreich angelegt<br>");
} else {
printf ("-Fehler beim Anlegen der Datenbank: %s\n", mysql_error ());
die;
}
if (mysql_query("CREATE TABLE `status` (
  `ID` int(255) NOT NULL auto_increment,
  `url` varchar(255) character set latin1 NOT NULL,
  `name` varchar(255) character set latin1 NOT NULL,
  `port` int(255) NOT NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8")) {
echo ("-Tabelle Status erfolgreich angelegt<br>");
} else {
printf ("-Fehler beim Anlegen der Datenbank: %s\n", mysql_error ());
die;
}
if (mysql_query("INSERT INTO accounts (name, password, admin, vorname, nachname, icq, msn, jabber, email, website) VALUES ('$adminname', '$adminpw', '1', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a')")) {
echo ("-Admin erfolgreich hinzugefügt<br>");
} else {
printf ("-Fehler beim Hinzufügen des Admins: %s\n", mysql_error ());
die;
}
$fn="cfg/config.php";
$text="<?php\n\$db = \"$dbname\";\n\$dbu = \"$dbuser\";\n\$dbp = \"$dbpass\";\n\$dbh = \"$dbhost\";\n\$downloadordnerpath = \"$pfad\";\n\$downloadpath = \"$ordner\";\n?>";
$fp=fopen($fn,"w");
fwrite($fp,$text);
fclose($fp);
echo ("-Config geschrieben<br>");
echo ("<b>Installation ist Fertig! :) Lösche bitte die install.php</b>");
}
} 
?>
 

Ähnliche Themen

CentOS 5.8 –SQL Abfrage– HTML wird generiert und daraus müssen mehrere Mails versendet werden

PHP5 + MYSQL auf Ubuntu: Fatal Error called to undefined function mysql_connect()

Programmierung unter Linux

Problem mit Apache2 + MySQL Server

jede menge anfängerfragen

Zurück
Oben