Ankündigung

Einklappen
Keine Ankündigung bisher.

in mysql_query externe sql-Datei einfügen

Einklappen

Neue Werbung 2019

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

  • in mysql_query externe sql-Datei einfügen

    Hallo,

    ich habe eine Funktion geschrieben, die mir eine Tabelle anlegen soll:
    PHP-Code:
    function installdb($table$datei) {

        
    $step $_GET['step'];
        
    $self $_SERVER['PHP_SELF'];

        if (
    $step == ""){
            echo (
    "<a href=\"$self?step=1\">HIER</a> klicken, um die Tabelle [b]$table[/b] anzulegen.");
        }

        if (
    $step == "1"){
            echo(
    "[b]Datenbank wird angelegt ..

    [/b]"
    );
            
            
    mysql_query("CREATE TABLE IF NOT EXISTS `$table` (". include("$datei") . ";") or die("Die Tabelle $table konnte nicht angelegt werden!
    MySQL-Fehler:"
    mysql_error());
            
            echo
    "
                Die Tabelle [b]
    $table[/b] wurde erfolgreich angelegt.


                <meta http-equiv=\"refresh\" content=\"1; URL=
    $self?step=2\">
            "
    ;
        }
        
        if (
    $step == "2") {
            echo 
    "Die Installation war erfolgreich! 
     Bitte löschen sie nun die Datei [b]install.php[/b]."
    ;
        }

    Ist das include, was ich in Teile 13 mache, so überhaupt möglich?

    Die includierte .sql-Datei sieht verkürzt so aus:
    Code:
    `id` int(4) NOT NULL auto_increment,
    ...
    PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM
    Funktionsaufruf ist:
    PHP-Code:
    installdb("tabelle""datenbank.sql"); 
    Gruß Marcel


  • #2
    nein
    aber bei php5 könnte es mit
    file_get_contents($datei)
    hinhauen.
    Slava
    http://bituniverse.com

    Kommentar


    • #3
      wieso php5?
      --

      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


      --

      Kommentar


      • #4
        Zitat von nikosch77
        wieso php5?
        weil ich vergessen habe, dass diese funktion schon bei php 4.3.0 eingeführt wurde.
        Slava
        http://bituniverse.com

        Kommentar


        • #5
          Hallo, wenn schon würde ich den gesamten SQL-Code in die Datei auslagern und für die variablen Teile (Tabellenname) Platzhalter verwenden.

          Kommentar


          • #6
            @Slava: Danke, werds damit versuchen.

            @Zergling: Das würde ich auch gerne, aber ich wusste nicht, dass ich Platzhalter verwenden kann Wie muss ich das machen??

            PS: Warum bekomm ich eigentlich keine Forum-Benachrichtigung über neue Antworten, obwohl ich das ausgewählt habe?

            Kommentar


            • #7
              Zitat von maeck
              @Zergling: Das würde ich auch gerne, aber ich wusste nicht, dass ich Platzhalter verwenden kann Wie muss ich das machen??
              http://de.php.net/sprintf

              Zitat von maeck
              PS: Warum bekomm ich eigentlich keine Forum-Benachrichtigung über neue Antworten, obwohl ich das ausgewählt habe?
              Ich leite das mal weiter.

              Kommentar


              • #8
                PS: Warum bekomm ich eigentlich keine Forum-Benachrichtigung über neue Antworten, obwohl ich das ausgewählt habe?
                Solltest Du Dir ganz ganz sicher sein, dass Du die Benachrichtigung für den jew. Beitrag aktiviert hast (auch in Deinem Profil!), so schaue gleichermaßen nach, ob die Emails von phpfriend.de nicht in einem Spam-Ordner landen oder aus versehen aussortiert werden.

                Der Grund für das 'nicht empfangen' von Antworten lag in Vergangenheit darin, dass User den Abbestelllink in der ersten Benachrichtigungsemail (aus Versehen) angeklickt hatten. Um einen Thread wieder zu abbonieren, einfach am Ende eines jeden bzw. des betreffenden Forums den "Bei Antworten zu diesem Thema benachrichtigen"-Link anklicken.

                Bewerben war gestern – heute wirst Du gefunden!

                Kommentar


                • #9
                  Danke Zergling!
                  Wenn ich eine PHP-Variable $table in den SQL-Code packe, dann wird die nicht geparst, oder? Also es geht nur über diese sprint/ printf - Methode?

                  Zitat von Göke
                  Solltest Du Dir ganz ganz sicher sein, dass Du die Benachrichtigung für den jew. Beitrag aktiviert hast (auch in Deinem Profil!), so schaue gleichermaßen nach, ob die Emails von phpfriend.de nicht in einem Spam-Ordner landen oder aus versehen aussortiert werden.
                  In meinem Profil ist "Bei Antworten immer benachrichtigen" auf Ja und auch in meinem Spam-Filter ist nichts von phpfriend.de drin.
                  Hatte das Problem schon früher mal bemerkt, aber es dann irgendwie wieder verdrängt.

                  Kommentar


                  • #10
                    In meinem Profil ist "Bei Antworten immer benachrichtigen" auf Ja und auch in meinem Spam-Filter ist nichts von phpfriend.de drin.
                    Hatte das Problem schon früher mal bemerkt, aber es dann irgendwie wieder verdrängt.
                    Des Rästsels Lösung ist da: Dein GMX-Account ist inaktiv! Bitte logge Dich bei GMX ein, aktualisiere Deine Angaben und setze *phpfriend.de auf Deine Whitelist beim GMX-Spamschutz.

                    <maeck@gmx.net>: host mx0.gmx.net[213.165.64.100] said: 550 5.2.1
                    <maeck@gmx.net>... User is inactive {mx009} (in reply to RCPT TO command)
                    Bewerben war gestern – heute wirst Du gefunden!

                    Kommentar


                    • #11
                      lol

                      @maeck
                      Nein PHP-Variablen solltest du dort nicht reinschreiben, obwohl es möglich wäre.
                      Besser wäre ein geeigneter Platzhalter à la {TABLE} oder %s.
                      Die %-Platzhalter kannst du dann mit sprintf() füllen (hier ist dann die Reihenfolge der Platzhalter relevant).

                      Kommentar


                      • #12
                        *lach*, ja das mit dem GMX-Account ist schon komisch. Die Benachrichtigung der Sperrung fand ich in meinem SPAM-Filter Jetzt sollte wieder alles laufen und ich bin gespannt, ob ich jetzt wieder meine Benachrichtigungen bekomme. Der Spamfilter bei GMX ist deaktiviert. Auf jeden Fall, danke!!

                        @Zergling: Was macht es für einen Unterschied, ob ich php-Variablen verwende, oder Platzhalter? Sind doch in dem Sinne auch wieder Platzhalter, oder? Was spricht dagegen, das ich das tue?
                        Wenn ich es mit Platzhaltern mache, dann muss ich den String mit dem Inhalt der Textdatei, erst wieder durch sprintf() jagen, um ihn mit der Variablen zu füllen und kann ihn dann erst in den mysql_query-String geben.

                        Oder versteh ich was falsch?

                        Kommentar


                        • #13
                          Ich habe es mit der PHP-Variablen versucht, aber es hat nicht geklappt.

                          Nun habe ich es so gemacht, wie du gesagt hast:
                          PHP-Code:
                          $sql sprintf(file_get_contents("$datei"),$table); 
                          und es klappt.

                          Danke!

                          Kommentar

                          Lädt...
                          X