Dump über script ausführen?

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

  • 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.

    Kommentar


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

      Kommentar


      • #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 |


        Kommentar


        • #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

          Kommentar


          • #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>

            Kommentar


            • #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.";
              }

              ?>

              Kommentar


              • #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?

                Kommentar


                • #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"

                  Kommentar

                  Lädt...
                  X