geht im phpmyadmin aber extern nicht!

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

  • geht im phpmyadmin aber extern nicht!

    Ich will nen sql befehl ausführen, der liegt in der datei "installsql.sql". wenn ich diese in phpmyadmin im sql-bereich ausführe, funktioniert es einwandfrei. ich möchte diese aber per script installieren. dazu nehme ich folgendes script:

    PHP-Code:
    $db_list mysql_list_dbs();
    $cnt mysql_num_rows($db_list);
    $cnt $cnt 1;
    $db="SP22DE_".$cnt;
    mysql_query("CREATE DATABASE `$db`")or die(mysql_error());
    $sql file_get_contents("installsql.sql");
    echo 
    $sql;
    mysql_query($sql)or die(mysql_error()); 
    egal was ich mache, ich bekomme den fehler:
    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 IF NOT EXISTS `allg_lg_tf` (
    `language` varchar(255) NOT NULL' at line 23
    woran kann das liegen?

    Zeile 23: DROP TABLE IF EXISTS `allg_lg_tf`;
    Zuletzt geändert von dani_o; 14.12.2005, 16:14.
    Signatur-Text ...

  • #2
    Mit mysql_query() kannst du nur eine Query absetzen, du versuchst es gleich mit mehreren.

    So könnte es klappen:
    PHP-Code:
    $sql file_get_contents("installsql.sql");
    echo 
    $sql;
    $sql explode(';'$sql);
    print_r($sql);
    foreach(
    $sql as $query) {
        
    mysql_query($query)or die(mysql_error());

    Kommentar


    • #3
      könnte ...

      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 ' `o_font` varchar(255) NOT NULL, `o_size` varchar(255) NOT NULL , `gb_o' at line 10

      Zeile 10:

      `text` text NOT NULL,

      Das prob ist wahrscheinlich, das "text" oder?

      Gesamt:

      PHP-Code:
      CREATE TABLE `callincard_tf` (
        `
      idint(11NOT NULL default '0',
        `
      overvarchar(255NOT NULL,
        `
      texttext NOT NULL,
        `
      artdesignvarchar(255NOT NULL ,
        `
      bgcolorvarchar(7NOT NULL ,
        `
      textcolorvarchar(7NOT NULL ,
        `
      fontvarchar(255NOT NULL ,
        `
      sizevarchar(255NOT NULL ,
        `
      o_textcolorvarchar(7NOT ,
        `
      o_fontvarchar(255NOT NULL,
        `
      o_sizevarchar(255NOT NULL ,
        `
      gb_onlineenum('Y','N'NOT NULL ,
        `
      badwordenum('Y','N'NOT NULL ,
        `
      smilieenum('Y','N'NOT NULL ,
        `
      pagevarchar(255NOT NULL ,
        `
      feedbackenum('Y','N'NOT NULL
      TYPE=MyISAM
      Signatur-Text ...

      Kommentar


      • #4
        Ja das kommt noch dazu: Bestimmte Wörter sind in SQL reserviert, dürfen also nicht als Bezeichner für Datenbanken, Tabellen, Spalten oder Indizes benutzt werden. http://dev.mysql.com/doc/refman/4.0/...ved-words.html

        text ist in MySQL zwar zulässig (nicht reserviert), solltest du aber trotzdem nicht benutzen, da es nach SQL-Standard sehr wohl reserviert ist - MySQL hält sich nur nicht daran.

        Der Fehler bei dir: Es gibt keinen Datentyp text in MySQL - sont wäre text ja auch reserviert. http://dev.mysql.com/doc/refman/4.0/...umn-types.html

        Kommentar


        • #5
          ja klar. allerdings hab ich ja ne datenbank mit denselben einträgen, dort habe ich ja den export benutzt und der soll nu wieder in die neue datenbank
          Signatur-Text ...

          Kommentar


          • #6
            Sorry, ich habe mich geirrt. MySQL kennt doch einen Spaltentyp text. Es ist ein Alias für blob. Wie der String text dann trotzdem nicht reserviert sein kann, weiß ich auch nicht.

            In deiner CREATE-Query fehlt allerdings ein NULL in der Zeile mit o_textcolor.

            Kommentar


            • #7
              DU BIST EIN SCHATZ! ES FUNKTIONIERT!
              A-B-E-R!!!
              Der zeigt nun als Fehlermeldung: Query was empty!
              Signatur-Text ...

              Kommentar


              • #8
                okay, das unterdrücke ich mit nem @!
                Ist ja egal, dass das so ist, die tabellen sind ja in der datenbank!
                Signatur-Text ...

                Kommentar


                • #9
                  Original geschrieben von dani_o
                  DU BIST EIN SCHATZ!
                  Ich hoffe, du bist weiblich.
                  Der zeigt nun als Fehlermeldung: Query was empty!
                  Würde ich nicht unterdrücken. Du mußt dir nur klarmachen, dass nur SELECT-Queries etwas zurückliefern, CREATE, INSERT, DELETE, UPDATE usw. nicht. Also versuch nicht mit mysql_fetch_*() irgendwas abzuholen, wo nichts sein kann.

                  Das @ benutzt man nur, wenn es gar nicht anders geht - also nie! (Ausnahmen denkbar, z.B. bei CLI-Anwendungen)
                  Und erst recht nicht, wenn man noch am Programmieren und Testen ist, denn dann sucht man tagelang nach Fehlern, die PHP sonst direkt melden würde.

                  Kommentar


                  • #10
                    ob ich weiblich bin?
                    mhmm ... Lass Deiner Fantasie freien lauf!
                    aber wenn da nix bammelt, wirds wohl so sein ...

                    trotzdem noch mal viiiiiieeeeeeellllllleeeeennnnn Dank!
                    das mit dem query empty ist gelöst, musste nur die sql datei mal richtig einstellen! Nu gehts! hatte da ein ; zuviel!
                    Signatur-Text ...

                    Kommentar


                    • #11
                      Ach ja, PMA macht beim Exportieren nach jedem Statement ein Semikolon, was sich mit dem explode() nicht ganz verträgt.

                      Ich glaube da bammelt doch was, schließlich bezeichnest du dich auf deiner Seite als "selbstständiger Softwareprogrammierer, Webdesigner und Konzeptplaner", nicht <BuzzName>in.

                      Kommentar


                      • #12
                        hab ja gesagt: "Lass Deiner Fantasie freien lauf!" und "wenn da nix bammelt ..."
                        Signatur-Text ...

                        Kommentar

                        Lädt...
                        X