Ankündigung

Einklappen
Keine Ankündigung bisher.

sql Datei einlesen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • sql Datei einlesen

    Hallo,

    ich habe ein Installscript.
    Da lese ich dann auch eine SQL Datei ein, um die Tabellen in der DB zu installieren:

    PHP-Code:
    //creat the new tabels in db
    $open fopen("install.sql","r+"); 
    $content fread($open,filesize("install.sql")); 

    $install_dbs = new mysql($content);
    $install_dbs -> active_mysql($content); 
    In der sql Datei sieht es so aus:

    Code:
    CREATE TABLE IF NOT EXISTS `config` (
      `id` int(15) NOT NULL auto_increment,
      `cms_name` text NOT NULL,
      `cms_key_words` text NOT NULL,
      `cms_description` text NOT NULL,
      `install_path` text NOT NULL,
      `install_port` varchar(80) NOT NULL,
      `language` varchar(250) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    
    CREATE TABLE IF NOT EXISTS `user` (
      `id` int(15) NOT NULL auto_increment,
      `username` varchar(250) NOT NULL,
      `password` varchar(250) NOT NULL,
      `email` varchar(250) NOT NULL,
      `admin` smallint(1) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    Doch es wird keine Tabelle erstellt und ich bekomme auch keine Fehlermeldung ausgegeben.
    Kann mir also nicht erklären warum es nicht geht, hat jemand vielleicht einen Tipp für mich?

    Danke

  • #2
    Dann solltest du wohl deine MySQL-Klasse um Error-Reporting erweitern.

    mysql_query() verarbeitet uebrigens immer nur einen Query. Ich hatte mal im Tutorial-Forum ein Skript, dass dir das ganze auseinanderpflueckt. Aber das ist glaube ich verschollen.

    Andernfalls einfach ueber die Konsole mit mysql installieren.

    Kommentar


    • #3
      Zitat von Chriz Beitrag anzeigen
      Dann solltest du wohl deine MySQL-Klasse um Error-Reporting erweitern.

      mysql_query() verarbeitet uebrigens immer nur einen Query. Ich hatte mal im Tutorial-Forum ein Skript, dass dir das ganze auseinanderpflueckt. Aber das ist glaube ich verschollen.

      Andernfalls einfach ueber die Konsole mit mysql installieren.
      Nein es soll ja über den Server laufen, soll später eien CMS werden

      Kommentar


      • #4
        Dann muss du das ganze Ding zusätzlich splitten.

        Kommentar


        • #5
          Und wie mache ich sowas?

          Kommentar


          • #6
            Im Manual nachschauen: explode() ,jedoch brauchst du einen delimiter hier

            Kommentar


            • #7
              Habe es so gelöst:

              PHP-Code:
              $import file_get_contents("install.sql");
              $import preg_replace ("%/\*(.*)\*/%Us"''$import);
              $import preg_replace ("%^--(.*)\n%mU"''$import);
              $import preg_replace ("%^$\n%mU"''$import);

              mysql_real_escape_string($import); 
              $import explode (";"$import); 

              foreach (
              $import as $imp){

                if (
              $imp != '' && $imp != ' '){
                          
              $install_dbs = new mysql($imp);
                    
              $install_dbs -> active_mysql($imp); 
                      }

              Kommentar


              • #8
                Ich hatte mal im Tutorial-Forum ein Skript, dass dir das ganze auseinanderpflueckt. Aber das ist glaube ich verschollen.
                Voila: http://www.php.de/tutorials/44468-ph...trahieren.html

                Kommentar

                Lädt...
                X