SQL in datei.php ausführen

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

  • SQL in datei.php ausführen

    Guten Tag!
    Vielleicht können Sie mir hier weiterhelfen.
    Ich habe php/mysql-technisch gesehen folgendes Problem:

    Per PHP-Datei möchte ich eine Datenbank mit den Inhalten einer .sql Datei füllen, welche ich vorher per phpmyadmin exportiert habe.
    Es sollen also Tabellen und deren Struktur erstellt werden.
    Bisher habe ich durch dieses Forum und der Internetsuche diesen Codeschnipsel zusammenbekommen.

    PHP-Code:
    require("include/connect.php");
    $sql file_get_contents("db2.sql");
    echo 
    $sql;
    $sql explode(';'$sql);
    print_r($sql);
    foreach(
    $sql as $query) {
        
    mysql_query($query)or die(mysql_error());

    Der Inhalt wird mir dadurch auf dem Monitor angezeigt, aber es wird nichts eingelesen. Die Fehlermeldung am Ende des Textes:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE `starvision` ( `id` int(11) NOT NULL default '0', `over' at line 1
    Was hat mir dieser Fehler zu sagen?

    Zudem hab ich bei der Internetsuche viel über implode() gelesen, ich sag mal 50% pro und 50% contra.
    Daher wende ich mich nun an erfahrene Programmierer, die mir vielleicht etwas helfen können.
    Ist der Code oben vielleicht auch total fehl am Platz!?
    Wie sollte ich nun am Besten verfahren?

    Grüße,
    Samuel Hille

  • #2
    wo kommen diese zeichen her?

    
    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


    • #3
      Ich habe die db2.sql im Editor geöffnet, dort kam dieses zeichen und auch "Kästen".
      Sind denke ich nur Formatierungsprobleme des Editors, da ich diesen Code per phpmyadmin in dieser Art einfügen konnte.

      Können Sie mir zu der Sache einen Tipp geben?

      Schönen Abend noch!
      Samuel Hille

      Kommentar


      • #4
        lösche diese zeichen mal raus.

        es kann sein, dass das export-script vom PMA das verursacht hat. evtl auch mal den apache neu starten.
        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
          Hab die Datei in Dreamweaver geöffnet und mal eine Test-sql erstellt:

          PHP-Code:
          CREATE TABLE `test` (
            `
          idint(11NOT NULL default '0',
          TYPE=MyISAM
          Als Fehlermeldung erscheint erneut:
          CREATE TABLE `test` ( `id` int(11) NOT NULL default '0', ) TYPE=MyISAM;Array ( [0] => CREATE TABLE `test` ( `id` int(11) NOT NULL default '0', ) TYPE=MyISAM [1] => ) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE `test` ( `id` int(11) NOT NULL default '0', ) TYPE=MyISAM' at line 1
          Das Zeichen erscheint wieder, und ich weiß nicht warum.
          Ist das Skript bzw. der Aufruf überhaupt korrekt?

          Grüße,
          Samuel Hille

          Kommentar


          • #6
            Hallo!
            Ich weiß leider immer noch nicht, was das für Zeichen vor dem CREATE sind. Hab das ganz nochmal von hand in eine neue Datei geschrieben. Das bleibt einfach komplett erhalten.

            Hab eine ander Methode zum auslesen der Datei benutzt:

            PHP-Code:
            $lines file ('db2.sql');
            foreach (
            $lines as $line_num => $line)
            {
            echo 
            "Line #<b>{$line_num}</b> : " htmlspecialchars($line) . "<br>\n";

            Ausgabe ist:

            Line #0 : CREATE TABLE `test` (
            Line #1 : `id` int(11) NOT NULL default '0',
            Line #2 : ) TYPE=MyISAM;

            Kann mir jemand erklären wo diese Zeichen herkommen??

            Grüße,
            Samuel Hille

            Kommentar


            • #7
              Durchsuche das Forum nach "", das hatten wir schon mehrmals.

              Kommentar


              • #8
                Ah, ja da kann ich lange nach dem Fehler suchen. Hatte gegoogelt und nichts gefunden, daher viel mir die Suche gar nicht vor die Augen.

                Sry daher.
                Werd nunmal weiterschauen. Sollte eigentlich jetzt klappen!

                Danke!
                Samuel Hille

                Kommentar

                Lädt...
                X