fehler mit php-datei

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

  • fehler mit php-datei

    WAS ist daran falsch?? ich bin VERZWEIFELT!!


    es kommt Err002 heraus, ich habe aber keine Ahnung WARUM! Ich habe nur eine KLEINE Änderung vorgenommen, die ich dann wieder RÜCKGÄNGIG gemacht habe, aber das Problem besteht weiter!

    ($query ist
    PHP-Code:
    INSERT INTO netsnake VALUES(null,"h","g","1","f","g","g","d","g","g","g","d","g","d","1"); 
    ich weiß, es ist nichts besonderes, was da in die tabelle kommt, aber es ist eigentlich richtig, und DA ist der Fehler, soweit ich weiß... )

    Sowas kommt bei mir irgendwie öfters vor, ich ersetze eine kleine, funktionierende Stelle Code in eine fehlerhafte, mache dies rückgängig, und es kommt dauernd irgendein fehler!!

    Und wenn ihr mich fragt, ob das bei dem GLEICHEN Code passiert, egal WOBEI, es hilft dann nur, die Datei KOMPLETT NEU !ABZUSCHREIBEN! (!!) und unter einem anderen DATEINAMEN zu speichern!

    Keine Änderung, nur eine anderer Dateiname, sonst ist alles falsch. Aber wenn ich den Code KOPIERE anstatt ABZUSCHREIBEN, ist er auch Falsch, was mache ich nur?? (Nein, ich schreibe es wirklich WORTWÖRTLICH ab, nicht dass ich im Code vorher einen Fehler hatte, ich habe alles bis ins KLEINSTE Detail durchgekämt, NIX!)

    PHP-Code:

    <?php
    session_start
    ();
    $db = new mysqli("localhost","user","passwort");
    $arr $_SESSION;

    if(!isset(
    $_POST["termsofuse"]))
      {
      echo 
    "Sie m&uuml;ssen etwas akzeptieren!!<br />";
      include(
    "test003.php");
      exit;
      }

    $query "use netsnake;";
    if(!
    $db->query($query))
      die(
    "Fehler mit MySQL-Datenbank!<br />Err:001<br />");

    $array = array("a","b","c","d","e","f","g","h","i","j","k","l","m");
    $k ",";
    $a '"';

    $query "INSERT INTO netsnake VALUES(null";
    $query .= $k;
    foreach(
    $array as $string)
      {
      
    $query .= $a;
      
    $query .= $arr[$string];
      
    $query .= $a;
      
    $query .= $k;
      }
    $query .= $a;
    $query .= date("d.m.H");
    $query .= $a;
    $query .= ");";

    if(!
    $db->query($query))
      {
      die(
    "Fehler mit MySQL-Datenbank!!<br />Err:002<br /><nobr>".$query."</nobr><br />");
      }

    echo 
    "Ihre Daten wurden gespeichert<br />";

    $db->close();
    ?>
    BIITTE helft mir, thx
    netsnake
    Zuletzt geändert von netsnake; 15.01.2007, 17:07.
    | netsnake | www.netsnake.net |
    Für Rechtschreibfehler, Denkfehler, Tippfehler, usw. übernehme ich KEINE HAFTUNG

  • #2
    lies dir doch bitte mal http://php-resource.de/forum/showthr...threadid=50454 durch. danke
    Freedom is a state of mind. Not a state in which we live.

    troxdev.ch | animefieber

    Kommentar


    • #3
      das mit der überbreite tut mir leid... ich schau mal was sich machn lässt..
      | netsnake | www.netsnake.net |
      Für Rechtschreibfehler, Denkfehler, Tippfehler, usw. übernehme ich KEINE HAFTUNG

      Kommentar


      • #4
        *seufz*

        Und den Rest liest du bitte auch noch - da steht auch, was du bei MySQL-Problemen als erstes tun sollst ...!
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Hi,

          Tip1:
          - Verwende einen guten PHP Editor. Ich habe einige getestet und
          finde diesen -> PSPAD mit
          Abstand am besten. Soll keine Werbung sein, ist Freeware.
          Der kann sogar automatische Backups von Files auf FTP Servern machen.

          Tip2:
          - Deine Query-Zusammenbastel-Aktionen verwirren mich
          Lass Dir den fertigen SQL String mal ausgeben und teste diesen
          dann z.B. im phpmyadmin direkt auf der Datenbank.
          So finde ich meistens Fehler im SQL String.

          Das hier ist meine $db Klasse:

          PHP-Code:
          class db_class 
              
          {
              var 
          $linkid;
                      
              
              function 
          connect ()
                  {
                  global 
          $config;
                  
                  if (! 
          $this->linkid=mysql_connect($config['db_host'],$config['db_user'],$config['db_pass'])) 
                      {
                      echo 
          "Connection to "$config['db_host'] , " failed! <BR>\n";
                      exit;
                      }
                      
          $res=mysql_select_db($config['db_db'],$this->linkid);
                      return 
          $this->linkid;
                  }
                  
              function 
          query ($sql$file="n/a"$line="n/a")
                  {
                  
          $linkid $this->connect();
                  
          $res mysql_query($sql,$linkid);
                  if (! 
          $res
                {
                echo 
          "<font color='black'><BR>Error in File:<STRONG><font color='blue'>"basename($file
          .
          "</font></STRONG> Line: <STRONG><font color='blue'>"
          $line ."</font></STRONG><BR />SQL String:   <STRONG>"
          $sql ."</STRONG></font><BR />SQL Error:   <font color='red'><STRONG>&nbsp;"
          .mysql_error()."</STRONG></font>";
                exit;
                }
           return 
          $res;
            }                

          Du brauchst dann nur noch in den Seiten:

          PHP-Code:
          $db = new db_class;
          $db->connect();
          $sql="SELECT ....";
          $res=$db->query ($sql,__FILE__,__LINE__); 
          so gibt meine Routine auch bei Fehlern das aufrufende Script und
          die Zeilennummer mit an.
          Gruss,
          Stefan

          Kommentar


          • #6
            OK:
            - ich verwende pspad bereits
            - hier ist er(der string):
            PHP-Code:
            INSERT INTO netsnake VALUES(null,"h","g","1","f","g","g","d","g","g","g","d","g","d","1"); 
            - und es ist kein mysql problem(ich habs mir durchgelesen), sonst wäre der $query-string falsch(siehe oben)...
            | netsnake | www.netsnake.net |
            Für Rechtschreibfehler, Denkfehler, Tippfehler, usw. übernehme ich KEINE HAFTUNG

            Kommentar


            • #7
              PHP-Code:
              if(!$db->query($query))
                {
                die(
              "Fehler mit MySQL-Datenbank!!<br />Err:002<br /><nobr>".$query."</nobr><br />" mysql_error());
                } 
              und was gibts jetzt aus?
              Freedom is a state of mind. Not a state in which we live.

              troxdev.ch | animefieber

              Kommentar


              • #8
                ahja beyond, wozu dient dieses __FILE__ und so??
                | netsnake | www.netsnake.net |
                Für Rechtschreibfehler, Denkfehler, Tippfehler, usw. übernehme ich KEINE HAFTUNG

                Kommentar


                • #9
                  Hi,

                  ich wage mal zu behaupten dass der SQL String falsch ist
                  Ohne Nachzusehen würde ich sagen, dass du "VALUES" nur
                  verwenden darfst, wenn Du vorher die Feldnamen angibst,
                  also
                  PHP-Code:
                   "INSERT INTO table (feld1,feld2,feld3) VALUES ('a',3,'b')" 
                  " __FILE__" und "__LINE__" sind vordefinierte php variablen
                  (immer gültig) und geben das aktuelle Skript (__FILE__) und
                  die Zeilennummer (__LINE__) an. Die "_" Underscores nicht
                  vergessen. Da ich meine DB Klasse in allen Scripts include,
                  übergebe ich diese Infos mit, da ich sonst immer nur
                  das file meiner db Klasse als Fehlerquelle erhalte.
                  Zuletzt geändert von Beyond; 15.01.2007, 18:01.
                  Gruss,
                  Stefan

                  Kommentar


                  • #10
                    nö, das ist schon richtig.
                    außerdem hat es ja funktioniert, bis ich die stelle des codes geändert habe, die jetzt "$db = new mysqli....." heißt... also ist daran prinzipiell nix falsch...
                    | netsnake | www.netsnake.net |
                    Für Rechtschreibfehler, Denkfehler, Tippfehler, usw. übernehme ich KEINE HAFTUNG

                    Kommentar


                    • #11
                      (VALUES): oops, hätte ich doch vorher nachschauen sollen

                      Die mysqli Struktur kam ja vermutlich mit PHP5. Habe ich noch nie
                      verwendet, ist aber ähnlich wie meine $db_class aufgebaut, aber
                      sicher von profis erstellt.

                      Beim Lesen der Doku ist mir aber aufgefallen dass
                      du bei
                      PHP-Code:
                      $db = new mysqli("localhost","user","passwort"); 
                      vergessen hast als 4ten Parameter den Namen der Datenbank anzugeben.
                      Versuch das mal!
                      PHP-Code:
                      $db = new mysqli("localhost","user","passwort","meinedb"); 
                      Gruss,
                      Stefan

                      Kommentar


                      • #12
                        ich glaube ich habe mein problem falsch formuliert...
                        ich hatte den GLEICHEN code schon vorher, und er hat FUNKTIONIERT. danach habe ich die im moment umstrittene zeile geändert, es gab nen fehler, welchen ich rückgängig gemacht habe, und seitdem ist da ein fehler in einer zeile, die eigentlich nix damit zu tun hat und eigentch richtig ist (die ganze datei ist ja richtig, sie hat ja so funktiobiert!).
                        | netsnake | www.netsnake.net |
                        Für Rechtschreibfehler, Denkfehler, Tippfehler, usw. übernehme ich KEINE HAFTUNG

                        Kommentar


                        • #13
                          der vierte param. ist nicht zwingend.kann man auch später mit "use ..." angeben
                          | netsnake | www.netsnake.net |
                          Für Rechtschreibfehler, Denkfehler, Tippfehler, usw. übernehme ich KEINE HAFTUNG

                          Kommentar


                          • #14
                            hm. ist dann ein komisches Phänomen.

                            Ist vielleicht in dem String irgend ein unsichtbares Sonderzeichen
                            oder ein Ì statt I z.B. ?
                            Blende mal alle Zeichen ein!
                            Wenn Du den String mal auskommentierst und nochmal neu eintippst
                            geht es dann?

                            Hast Du den SQL String nun schonmal mit phpmyadmin etc. gecheckt?
                            Vielleicht gibt es ja ein problem mit der tabelle (z.b. NOT NULL felder oder duplizierte index felder)?
                            Zuletzt geändert von Beyond; 15.01.2007, 19:56.
                            Gruss,
                            Stefan

                            Kommentar


                            • #15
                              der vierte param. ist nicht zwingend.kann man auch später mit "use ..." angeben
                              | netsnake | www.netsnake.net |
                              Für Rechtschreibfehler, Denkfehler, Tippfehler, usw. übernehme ich KEINE HAFTUNG

                              Kommentar

                              Lädt...
                              X