Fehler in query - nicht gefunden

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

  • Fehler in query - nicht gefunden

    Tag
    Also ich hab hier n Messagescript welches ne Nachricht in eine Datenbank speichert aber das will einfach nicht funzen
    mysql_error() gab nichts zurück und deshalb frag ich mal hier nach.

    Hier ist also mein Code :
    PHP-Code:
    if($_GET[action]=="sendmsg") {

    if(!
    $_POST[msgto] || !$_POST[msgtext]) { print "Sie müssen Nachricht und Benutzernamen angeben."; } else {

    $useridto_sel=mysql_query("SELECT id from userinfo WHERE name=\"$_POST[msgto]\"");
    $numuser=mysql_num_rows($useridto_sel);
    if(
    $numuser==0) { print "Dieser Benutzer wurde nicht gefunden."; } else {
    $useridto=mysql_fetch_array($useridto_sel);
    $time=time();
    $insertmsg="INSERT into messages (from,to) VALUES (\"$userinfo[id]\",\"$useridto[id]\")";
    mysql_query($insertmsg) or mysql_error();
    }
    }

    und hier meine Datenbankstruktur:
    Code:
    CREATE TABLE messages (
      id int(6) NOT NULL auto_increment,
      to int(5) NOT NULL default '0',
      from varchar(60) NOT NULL default '0',
      message mediumtext NOT NULL,
      time bigint(20) NOT NULL default '0',
      PRIMARY KEY  (id)
    ) TYPE=MyISAM;
    Also es passiert einfach nichts - kein fehler aber auch kein Ergebnis ....
    Sieht jemand von euch den Fehler ????

  • #2
    liegt evtl. daran, dass dein eines feld from heißt.

    probier's mal mit`from` statt from im string $insertmsg, da war im sql-bereich ne ähnliche frage und das hat geholfen afair
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Code:
      $insertmsg="INSERT into messages (to,fromb,message,time) VALUES (\"$useridto[id]\",\"$userinfo[id]\",\"$_POST[msgtext]\",\"$time\")";
      Habe jetzt from in fromb (auch in der DB) geändert aber bringt nichts , und wenn ich irgendwas ändere bringt mysql_error() auch nichts außer Schweigen

      Kommentar


      • #4
        die values müssen auch noch korrekt an die DB übergeben werden.
        bei arrayübergaben, trenne ich den string lieber, dann klappt es auch ..

        PHP-Code:
        $insertmsg "INSERT into messages (to, fromb, message, time) VALUES ('".$useridto[id]."', '".$userinfo[id]."', '".$_POST[msgtext]."', '".$time."')"
        falls es dann immer noch nicht gehen sollte, stellt sich die fragen, ob
        1. die datenbank überhaupt den INSERT ausführt
        2. die einzutragenden VARs inhalte besitzen.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Hallo

          Also habe es alles schön getrennt und auch die " und ' so gesetzt wie du es hast (was bringt das '".$var."' eigentlich genau?) aber es geht einfach nicht

          falls es dann immer noch nicht gehen sollte, stellt sich die fragen, ob
          1. die datenbank überhaupt den INSERT ausführt
          2. die einzutragenden VARs inhalte besitzen.
          Zu 1.:
          Ich denke mal nicht sonst stünde ja was drin
          Normalerweise funzt das aber (ist nicht das einzige Script mit insert)
          Zu 2.:
          Das habe ich schon längst ünerproft indem ich den komplettes Values Teil (so wie er ist) geprinted habe , und alles wurde perfekt angezeigt .

          Jetzt geh ich erstmal schlafen
          Gruss

          Kommentar


          • #6
            poste doch mal den INSERT-string...
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              hier ist der ganze code :
              PHP-Code:
              if($_GET[action]=="sendmsg") {

              if(!
              $_POST[msgto] || !$_POST[msgtext]) { print "Sie müssen Nachricht und Benutzernamen angeben."; } else {

              $useridto_sel=mysql_query("SELECT id from userinfo WHERE name=\"$_POST[msgto]\"");
              $numuser=mysql_num_rows($useridto_sel);
              if(
              $numuser==0) { print "Dieser Benutzer wurde nicht gefunden."; } else {
              $useridto=mysql_fetch_array($useridto_sel);
              $time=time();
              $insertmsg "INSERT into messages (to, fromb, message, time) VALUES ('".$useridto[id]."', '".$userinfo[id]."', '".$_POST[msgtext]."', '".$time."')";
              mysql_query($insertmsg) or mysql_error();
              }
              }

              Danke !

              Kommentar


              • #8
                das meinte ich nicht ...

                mach mal
                PHP-Code:
                echo $insertmsg
                da rein, damit ich sehen, kann wie der string aussieht, wenn die variablen entsprechend ergänzt sind.
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  ich hab deine groben fehler, die sicherheitslücken verursachen, mal korrigiert und schreibweise normalisiert, deine ist nämlich grausam.

                  mögliche syntaxfehler möge man mir verzeihen, ich bin um diese zeit nicht ganz fit.

                  PHP-Code:
                  if ($_GET['action'] == 'sendmsg') {

                      if ((!isset(
                  $_POST['msgto'])) || (!isset($_POST['msgtext']))) { 

                          echo 
                  'Sie müssen Nachricht und Benutzernamen angeben.'

                      } else {

                      
                  $query mysql_query("SELECT id from userinfo WHERE name='".addslashes($_POST['msgto'])."' ") or die(mysql_error());

                      
                  $user mysql_fetch_assoc($query);

                          if ((empty(
                  $user['id'])) || ($user['id'] == '')) {
                      
                              echo 
                  'Dieser Benutzer wurde nicht gefunden.'
                      
                          } else {

                              
                  $time=time();
                      
                              
                  mysql_query ("INSERT into messages (to, fromb, message, time) VALUES ('".$user['id']."', '".addslashes($userinfo['id'])."', '".addslashes($_POST['msgtext'])."', '".$time."') ") or die(mysql_error());
                          }

                      }

                  martin

                  Kommentar


                  • #10
                    Original geschrieben von Abraxax
                    das meinte ich nicht ...

                    mach mal
                    PHP-Code:
                    echo $insertmsg
                    da rein, damit ich sehen, kann wie der string aussieht, wenn die variablen entsprechend ergänzt sind.
                    INSERT into messages (to, fromb, message, time) VALUES ('1', '1', 'blablablBLABLA', '1043577691')

                    ===> ganz normal


                    @Martin_de:
                    Danke erstmal - es kommt folgender Fehler :
                    You have an error in your SQL syntax near 'to, fromb, message, time) VALUES ('1', '1', 'dff', '1043577759') ' at line 1

                    P.S. Was willst du damit sagen dass du die gräbsten Fehler raus hast ? Ist men Code etwa unsicher ???
                    Ich weiß er ist unsauber aber doch nicht unsicher oder ?

                    Kommentar


                    • #11
                      P.S. Was willst du damit sagen dass du die gräbsten Fehler raus hast ? Ist men Code etwa unsicher ???
                      Ich weiß er ist unsauber aber doch nicht unsicher oder ?
                      du solltest dich mal hiermit auseinandersetzen:
                      http://www.php-resource.de/forum/sho...threadid=14179

                      gerade im bereich db-programmierung extrem wichtig.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Danke für den Hinweis !
                        Aber das sollte doch eigentlich nichts ändern , da ich bisher mit einem stinknormalen Insert Befehl noch NIE solche probleme hatte

                        Das kann doch nicht sein , oder ?

                        Kommentar


                        • #13
                          Aber das sollte doch eigentlich nichts ändern , da ich bisher mit einem stinknormalen Insert Befehl noch NIE solche probleme hatte
                          ich fürchte, du hast den artikel nicht wirklich aufmerksam gelesen, sonst dürfte sich dir diese frage jetzt eigentlich gar nicht mehr stellen...

                          es geht nicht darum, dass du noch nie probleme mit deinen queries hattest, sondern darum welche probleme dir jemand anderes in bösartiger absicht machen kann, in dem er das was an deine php-seite an variablen übergeben wird, in bestimmter weise manipuliert...
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            Original geschrieben von zuzu
                            INSERT into messages (to, fromb, message, time) VALUES ('1', '1', 'blablablBLABLA', '1043577691')

                            ===> ganz normal


                            @Martin_de:
                            Danke erstmal - es kommt folgender Fehler :
                            You have an error in your SQL syntax near 'to, fromb, message, time) VALUES ('1', '1', 'dff', '1043577759') ' at line 1

                            P.S. Was willst du damit sagen dass du die gräbsten Fehler raus hast ? Ist men Code etwa unsicher ???
                            Ich weiß er ist unsauber aber doch nicht unsicher oder ?
                            hmm... ich sehe da keinen fehler in dem query, das sollte eigentlich funktionieren.

                            sieht da sonst jemand irgendein problem?
                            martin

                            Kommentar


                            • #15
                              @zuzu
                              änder mal den feldnamen to in to_b oder sowas. hier scheint mir ein fehler zu sein.
                              siehe error der DB.
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar

                              Lädt...
                              X