Wo ist der Fehler im SQL-Statement?

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

  • Wo ist der Fehler im SQL-Statement?

    Kann mir jemand sagen, was an diesem Statement falsch ist?

    $query="INSERT INTO $table

    (ID,post_author,post_date,post_date_gmt,post_content,post_title,post_category,post_excerpt,post_stat us,comment_status,ping_status,post_password,post_name,to_ping,pinged,post_modified,post_modified_gmt ,post_content_filtered,post_parent,guid,menu_order)

    VALUES ('','1','','','$articletext','$title','0','$description','publish','open','open',
    '','$title','','','','','','0','',
    '0')";
    gibt folgende Fehlermeldung:


    You have an error in your SQL syntax near 's number one destination, started as a directory. Nowadays, most users rely on s' at line 5
    Danke schonmal

    james

  • #2
    Re: Wo ist der Fehler im SQL-Statement?

    du versuchst einen text einzufügen, der
    's number one destination [...]
    enthält.
    durch das hochkomma am anfang endet dann aber da das literal, das du in deiner query mit '$variablenname' begonnen hast.

    nutze mysql_real_escape_string(), um deine daten vor dem einsetzen in einen query string abzusichern.

    bei weiteren fragen dazu bitte erst suchen, dass thema hatten wir schon ettliche male.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Danke für die antwort!

      Hab die Suche benutzt, aber nichts passendes gefunden.

      james

      Kommentar


      • #4
        Ok - jetzt krieg ich folgende Fehlermeldung:

        Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in...

        Das Script sieht so aus:


        PHP-Code:
        // MySQL Verbindung aufbauen
        $conn mysql_connect($mySQL_HOST$mySQL_USER$mySQL_PASS) or die ( "<H3>Datenbankserver nicht erreichbar</H3>");
        MYSQL_SELECT_DB($DATABASE) or die ( "<H3>Datenbank nicht vorhanden</H3>");  // Datenbank auswählen
        $query mysql_query("SELECT * FROM $table where category='Auto and Trucks'",$conn);
        if (
        mysql_num_rows($query) == 0)
            {
                print 
        "Keine Records in der Tabelle $table gefunden<br>\n";
          }
          else
          {
              while (
        $row mysql_fetch_array($query))
            { 
        // Gibt Daten aus
                    
        $id              $row[id]; gespeichert werden
                    $category                 
        $row[category]; 
                    
        $title         $row[title]; Vorschau
                    $description                       
        $row[description]; 
                    
                    
                    
                    
        $articletext$row[articletext]; // Hier die Anzahl der Bilder für 20 Galerien
                    
                    
                    
        $description=ereg_replace('\''''$description);
                    
        $articletext=ereg_replace('\''''$articletext);
                    
                    echo
        "$id , $category  , $title , $description$articletext <br><br><br>";
                    
                    
                    
        $query="INSERT INTO arktisfun_posts (ID,post_author,post_date,post_date_gmt,post_content,post_title,
        post_category,post_excerpt,post_status,comment_status,
        ping_status,post_password,post_name,to_ping,pinged,
        post_modified,post_modified_gmt,post_content_filtered,
        post_parent,guid,menu_order) 
                    
        VALUES ('','1','2005-05-09 17:56:42','2005-05-09 17:56:42','
        $articletext','$title','0','$description','publish','open',
        'open','','
        $title','','','2005-05-09 17:56:42','2005-05-09 17:56:42','','0','','0')";

        mysql_query($query) or die(mysql_error());

        }
                    
                    
                    
                    
                    
                    
                    
                
            }
        mysql_close($conn);    //Verbindung beenden 
        Was ist denn jetzt schon wieder falsch?

        Danke für Eure Zeit.

        james
        Zuletzt geändert von jamesbond; 10.05.2005, 11:35.

        Kommentar


        • #5
          jetzt liest du bitte erst mal die regeln zum posten von problemen, und setzt sie auch um:
          http://www.php-resource.de/forum/sho...threadid=50454
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Im Manual steht
            mysql_fetch_array ( resource result [, int result_type] )
            $query wird also keine Resource sein. Das hättest du gemerkt, wenn du mit mysql_error() arbeiten würdest.

            Warum verwendest du $query eigentlich erst um den SQL-String zu halten und dann die Resource? Ist dir kein Name für eine neue Variable eingefallen? Wie wäre es mit $res?
            Nicht dass es falsch wäre, aber man versteht den Code besser.

            Kommentar


            • #7
              @wahsaga

              Regeln jetzt gelesen
              Code in "php"-Quotes gesetzt und horizontal-scrollen jetzt nicht mehr nötig


              Es passiert folgendes:
              Die Schleife wird 1x korrekt durchlaufen und DANN kommt die Fehlermeldung:

              Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in...

              danke nochmal

              Kommentar


              • #8
                also jetzt mal abgesehen von deinem problem find ich den insert richtig übel kann man die tabelle nicht noch normalisieren?
                tutorial: peterkropff.de schattenbaum.de tut.php-quake.net
                documentation: php.net mysql.com framework.zend.com

                Die Nachtwache!

                Kommentar


                • #9
                  Original geschrieben von jamesbond
                  Die Schleife wird 1x korrekt durchlaufen und DANN kommt die Fehlermeldung: [...]
                  das dürfte wohl daran liegen, dass du dir zuerst das ergebnis der ersten abfrage - die resource id - in $query ablegst - und dann in der schleife $query wieder mit einem neuen mysql-befehl überschreibst, den du dann ausführst.
                  beim nächsten schleifendurchlauf ist $query jetzt aber ein string, und keine resource id mehr - darauf kannst du aber logischerweise mysql_fetch_... nicht anwenden.

                  nutze in deiner schleife für die dort zusammengesetzten queries eine andere variable, so dass du dir $query nicht überschreibst!
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    das wars!

                    Vielen Dank.

                    ich verspreche Besserung, was dir Formatierung meiner Posts angeht.

                    Bis dann

                    james

                    Kommentar

                    Lädt...
                    X