Dump über script ausführen?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dump über script ausführen?

    Hallo,
    über den Import von SQL-Dumps steht viel geschrieben, aber eine Antwort auf meine Frage habe ich noch nicht gefunden.
    Also: Ich habe über PHPMYADMIN einen SQL-Dump einer Datenbank erstellt. Eine leere Datenbank auf einem anderen Server ist mit einem PHP-Script erstellt worden. Auf dem Server befindet sich kein PHPMYADMIN und es ist kein Shell-Zugriff vorhanden. Nun möchte ich per PHP-Script die Tabellen und Inhalte erstellen lassen. Geht das überhaupt? Denn den Dump einfach in die Abfrage setzen klappt nicht.
    <?

    $DB_SERVER = "localhost";
    $DB_USER = "ich";
    $DB_PASSWD = "geheim";
    $DB_NAME = "kunden";

    $dbh = mysql_connect($DB_SERVER, $DB_USER, $DB_PASSWD);
    mysql_select_db($DB_NAME);
    if(!$dbh)
    {
    echo"Fehler<br>";
    }
    else
    {

    if(!mysql_query("CREATE TABLE `termine` (
    `id` int(6) NOT NULL default '0',
    `datum` varchar(23) NOT NULL default '',
    `13Uhr30` set('1','0') NOT NULL default '',
    `14Uhr00` set('1','0') NOT NULL default '',
    `14Uhr30` set('1','0') NOT NULL default '',
    `15Uhr00` set('1','0') NOT NULL default '',
    PRIMARY KEY (`id`)
    ) TYPE=MyISAM;

    # Daten für Tabelle `termine`
    INSERT INTO `termine` VALUES (1, '17.05.2004 - Mo', '1', '1', '1', '1');
    INSERT INTO `termine` VALUES (2, '18.05.2004 - Di', '0', '0', '0', '0');
    INSERT INTO `termine` VALUES (3, '24.05.2004 - Mo', '0', '0', '0', '0');
    "))

    {
    echo"****" . mysql_error();

    }

    else
    {
    echo"Tabellen wurden erstellt";
    }
    }
    ?>
    Liegt's am ';' ???

    Hab sowas erst einmal gemacht und da hatte ich auf beiden Servern einen PHPMYADMIN.

  • #2
    Re: Dump über script ausführen?

    Original geschrieben von Schranzmann
    Auf dem Server befindet sich kein PHPMYADMIN [...]
    Nun möchte ich per PHP-Script [...]
    PMA ist doch ein php-script - also warum installierst du es nicht einfach? (hochladen & config anpassen, fertig)
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Comment


    • #3
      Der Admin will nicht, das es auf dem Server läuft

      Comment


      • #4
        wieso das denn nicht?
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Comment


        • #5
          Muss das denn alles so wuselig hintereinander stehen
          Mag sein dass sowas annähernd funktionieren kann, aber wenn es im Moment nicht klappt, löse es doch erstmal Schritt für Schritt.

          PHP Code:
          <?

          $DB_SERVER = "localhost";
          $DB_USER = "ich";
          $DB_PASSWD = "geheim";
          $DB_NAME = "kunden";

          $dbh = mysql_connect($DB_SERVER, $DB_USER, $DB_PASSWD);

          if(!$dbh)
          {
             echo"Fehler<br>";
          }
          else
          {
             mysql_select_db($DB_NAME);

             mysql_query("CREATE TABLE `termine` (
             `id` int(6) NOT NULL default '0',
             `datum` varchar(23) NOT NULL default '',
             `13Uhr30` set('1','0') NOT NULL default '',
             `14Uhr00` set('1','0') NOT NULL default '',
             `14Uhr30` set('1','0') NOT NULL default '',
             `15Uhr00` set('1','0') NOT NULL default '',
             PRIMARY KEY (`id`)
             ) TYPE=MyISAM") or die (mysql_error());

             mysql_query("
             INSERT INTO `termine` VALUES (1, '17.05.2004 - Mo', '1', '1', '1', '1');
             INSERT INTO `termine` VALUES (2, '18.05.2004 - Di', '0', '0', '0', '0');
             INSERT INTO `termine` VALUES (3, '24.05.2004 - Mo', '0', '0', '0', '0');
             ") or die (mysql_error());
          }
          ?>
          Vielleicht kannst dann noch prüfen, ob es bei den querys einen Fehler gab...vielleicht geht es mit
          PHP Code:
          if(!mysql_error())
             echo 
          "Tabellen wurden erstellt"
          Übrigens machen Einrückungen und php-tags das Leben leichter

          Comment


          • #6
            Original geschrieben von Schranzmann
            Der Admin will nicht, das es auf dem Server läuft
            das bekommt der doch garnicht mit, und wenn du die Daten übertragen hast entfernste es wieder.


            Ansonsten wenn du ein script schreiben willst.

            erst mal DB Verbindung herstellen
            - Tabellen erstellen

            - dann daten per schleife einfügen
            mfg
            marc75

            <Platz für anderes>

            Comment


            • #7
              so gehts:

              PHP Code:
              <?php

              // Verbindung zur DB

              $db mysql_connect("mysql hostname","mysql username","mysql passwort");

              mysql_select_db("datenbankname",$db);

              // Jetzt der dump... hier ein beispiel:

              $create_table "CREATE TABLE userlog (
               Kennummer int(11) DEFAULT '0' NOT NULL auto_increment,
               ID char(255),
               IP char(255),
               NAME char(255),
               COUNT char(255),
               DATE char(255),
               PRIMARY KEY (Kennummer)
               )"
              ;

              $query mysql_query($create_table,$db);

              mysql_close($db);

              if(
              $query=="1") {
               echo 
              "Query erfolgreich ausgeführt.";
              } else {
               echo 
              "Leider ist etwas fehlgeschlagen.";
              }

              ?>

              Comment


              • #8
                Erstmal danke,

                hab den phpmyadmin vorhin dann draufgespielt und beim Script ausführen prompt nen Error gekriegt.

                +++
                ERROR: Nicht geschlossene Anführungszeichen @ 61
                STR: '
                SQL: ALTER TABLE `kunden` ADD `zuverl` SET(\'0\',\'1\') DEFAULT '1' NOT NULL
                +++

                Auf unserem anderen Server lässt es sich problemlos ausführen.
                Ich habs auch per Hand über den phpmyadmin versucht, gleiche Fehlermeldung.

                Hab dann die Versionen gecheckt: PHP 4.0.6 und MySQL 3.23.37, auch nicht so taufrisch, kann es sein, das die MySQL-Version mit der Syntax nicht klar kommt?

                Comment


                • #9
                  falls erlaubt, probier doch dies
                  PHP Code:
                  system("/usr/bin/mysqldump -uUSERNAME -pPASSWORT -hSERVER DATENBANK > /absoluter/pfad/mit/schreibberechtigung/dump.sql"$status);
                      if (
                  $status==0) echo "Daten exportiert"; else echo "Es ist ein Fehler aufgetreten"

                  Comment

                  Working...
                  X