Unerklärliche Fehler...

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

  • Unerklärliche Fehler...

    Hiho...


    Sagt ma, ich bekomme hier gleich die Kriese, ich hab keinen Plan warum das von mir nun schon so gekürzte Script immernoch nicht funktioniert...

    Es geht um folgendes Script...

    PHP-Code:
    $x = array("230","450");
    $y = array("54","34");
    $to = array("user1","user2");
    $from "System";
        
    for(
    $i=0;$i<sizeof($x);$i++)
      {
      
    mysql_query("INSERT INTO test_pn (pn_id, from, to) 
      VALUES ('','"
    .$from."', '".$to[$i]."')") or print(mysql_error());
      } 
    Führe ich das aus, kommt immer die Fehlermeldung
    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 'from, to) VALUES ('', 'System', 'user1')' at line 1You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'from, to) VALUES ('', 'System', 'user2')' at line 1You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'from, to) VALUES ('', 'System', '')' at line 1

    komisch ist mir vorallem, warum er das Script ausführt, wenn ich nur die pn_id eintragen lasse. Da geht er ohne Fehler komplett durch.

    also wenn das Script so ist.

    PHP-Code:
    $x = array("230","450");
    $y = array("54","34");
    $to = array("user1","user2");
    $from "System";
        
    for(
    $i=0;$i<sizeof($x);$i++)
      {
      
    mysql_query("INSERT INTO test_pn (pn_id) VALUES ('')") or print(mysql_error());
      } 
    PS: Die DB-Verbindung wird in einer anderen Datei hergestellt, welche per include am Scriptanfang aufgerufen wird.
    Kann mir jemand helfen, ich bekomm hier echt gleich n Anfall wegen der Sache...


    Danke im Voraus.

    MfG Dani

  • #2
    mach mal ein echo $sql; damit du siehst wie die Abfrage aussieht.

    also:

    $sql = "INSERT .....";

    $result = mysql_query($sql) or die (mysql_error($result));

    echo $sql;

    ----------

    AAAAHHH - er meckert bei derStelle "from"
    - logisch - ist ein reservierter Begriff.

    Wieso gibt mysql keine Fehlermeldung aus:

    "You are using a reserved word: from".

    Wär wesentlich einfacher zu debuggen.
    Zuletzt geändert von Koala; 07.10.2006, 19:30.

    Kommentar


    • #3
      http://www.php-resource.de/forum/showthread.php?s=&threadid=76610
      PHP script resource - Unerklärliche Fehler...
      Weil SQL das nicht erkennen kann. weil mysql die bedeutung der Query nicht kennt, sondern nur erkennen kann, dass die syntax falsch sind. (nämlich ein , vor FROM, was da natürlich nicht hingehört, bzw. eigentlich ein FROM hinter dem Komma, was da genauso wenig hingehört.)

      Kommentar


      • #4
        Aber das müßte doch möglich sein, daß mysql_error den String nach
        unerlaubten Wörtern durchsucht.

        Kommentar


        • #5
          das wort ist aber nicht unerlaubt.

          Kommentar


          • #6
            als Spaltenname schon

            Kommentar


            • #7
              Aber wer sagt dir (dem sql-parser), dass es ein spaltenname sein soll. Woran willst du das (nur an der Syntax!) erkennen?

              Vielleicht hat da nur irgend ein hornochse ein komme zu viel gemacht, weil er einen spaltennamen gelöscht hat und das komma (meist in der zeile davor) vergessen hat. Passiert imo um einiges öfter, als dass man nen reserviertes wort missbraucht.

              Kommentar


              • #8
                man könnte abgestufte Error-Levels machen wie bei error_reporting
                und dann vor der eigentlichen mysql_error-Funktion
                mit preg_match nach den Begriffen suchen, so daß eine Notice
                ausgegeben wird: "Notice: You might be using an illeagal phrase as a column title. Please check ..."

                Aber ich könnt mir das natürlich auch in einer mysql-Klasse nachbauen.

                Kommentar


                • #9
                  Wenn du irgendwann zum SQL-Entwickler gestiegen bist, kannste deine Ideen mit einbringen. Auch wenn es unsinn ist.

                  Kommentar


                  • #10
                    Den Aufstieg zum mysql-Entwickler überlaß ich Dir.
                    Du scheinst da bedeutend mehr Ahnung zu haben.

                    Kommentar


                    • #11
                      Original geschrieben von Koala
                      als Spaltenname schon
                      schwachfug ^ 3

                      `from` und die sache is gegessen..

                      Kommentar


                      • #12
                        hm...

                        also ohne das ich es jetzt mal ausprobiert habe, aber ich glaube nich das es an dem $from liegt...

                        ich habe diese var erst noch im nachinein hinzugefügt, weil es mit reinem text auch nich funktioniert hatte.



                        PHP-Code:
                        $x = array("230","450");
                        $y = array("54","34");
                        $to = array("user1","user2");

                            
                        for(
                        $i=0;$i<sizeof($x);$i++)
                          {
                          
                        mysql_query("INSERT INTO test_pn (pn_id, from, to) 
                          VALUES ('','System', '"
                        .$to[$i]."')") or print(mysql_error());
                          } 
                        so hatte ich es vorher, und bin mir zu 80% sicher das es so auch nich ging...

                        aber ich teste das gleich ma. sitz grad am falschen rechner...

                        ich meld mich dann nochma

                        mfg dani

                        Kommentar


                        • #13
                          du hast ja auch nix geändert..

                          INSERT INTO test_pn (pn_id, from, to)

                          Daran liegt es!

                          Kommentar


                          • #14
                            Original geschrieben von Trashar
                            du hast ja auch nix geändert..

                            INSERT INTO test_pn (pn_id, from, to)

                            Daran liegt es!
                            jo, sorry... is mir dann auch aufgefallen das ihr das meint. jetzt funkt es auch ohne probleme.

                            war mir nich bewusst, das es da auch vorreservierte variablen gibt...

                            dank euch.

                            plz close, is erledigt.

                            mfg dani

                            Kommentar

                            Lädt...
                            X