Announcement

Collapse
No announcement yet.

Fehler bei INSERT aber errno = 0

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fehler bei INSERT aber errno = 0

    Hi,

    ich versuche gerade mit PHP und mysql nen login bzw. anmeldeformulare für eine eigene website zu erstellen. Sollte ja auch kein Problem sein weil es 1000 Beispiele dafür gibt.
    Jedoch bekomme ich mit dem INSERT Befehl keine Daten in die Datenbank

    PHP Code:
    /*Verbindung mit der Datenbank herstellen*/
    $db_link mysql_connect ("localhost""root""admin") or die("Verbindung mit Server fehlgeschlagen!");
    echo 
    "Verbidung zur Server hergestellt.";

    /*Datenbank öffnen*/
    $db_open mysql_select_db("testdb") or die("Fehler beim öffnen der Datenbank!");
    echo 
    "Verbindung mit der Datenbank erfolgreich";

    /*Datenbankanfrage senden*/
    $db_command sprintf("INSERT INTO test (test1) VALUES (%s)",mysql_real_escape_string($_POST['password']));
    echo 
    $db_command;
    $db_result mysql_query($db_link$db_command) or die('Fehlerhafte Datenbankabfrage'.$db_result."Error:" .mysql_error()."ErrorNum:".mysql_errno());

    echo 
    "Abfrage erfolgreich";

    echo 
    $db_result
    Was ich nun aufgrund der echos angezeigt bekomme ist folgendes:

    Verbidung zur Server hergestellt.Verbindung mit der Datenbank erfolgreichINSERT INTO test (test1) VALUES (44)Fehlerhafte DatenbankabfrageError:ErrorNum:0

    Heißt für mich soviel wie das der sql Befehl korrekt war aber ich aus irgendeinen anderen Grund nicht in die DB schreiben konnte.

    Wenn ich den sql Befehl kopiere und direkt in phpMyAdmin ausführe funktioniert der Befehl auch und die Daten werden in die db geschrieben.

    Hat jemand von euch eine Idee?

    Vielen Dank schonmal im Voraus

    Christian

  • #2
    Versuche es mit

    INSERT INTO test (test1) VALUES ('%s')
    Christian

    Comment


    • #3
      Und bitte nimm parametrisierte Abfragen.
      Nur damit bist du wirklich gegen SQL-Injection geschützt

      Comment


      • #4
        Hi,

        danke erstmal für die schnelle Reaktion.
        Wenn ich die Zeile ändere kommt der gleiche Fehler...
        PHP Code:
        $db_command sprintf("INSERT INTO test (test1) VALUES ('%s')",mysql_real_escape_string($_POST['password'])); 
        Verbidung zur Server hergestellt.Verbindung mit der Datenbank erfolgreichINSERT INTO test (test1) VALUES ('5656')Fehlerhafte DatenbankabfrageError:ErrorNum:0

        Der Wert der in der db erwartet wird ist ein int wert.

        db.jpg

        Christian

        Comment


        • #5
          Entferne das .$db_result. aus der Ausgabe, dann sollte eine Fehlernummer kommen
          Christian

          Comment


          • #6
            PHP Code:
            $db_command sprintf("INSERT INTO test (test1) VALUES ('%s')",mysql_real_escape_string($_POST['password']));
            echo 
            $db_command;
            $db_result mysql_query($db_link$db_command) or die('Fehlerhafte Datenbankanfrage! '."Error: " .mysql_error()."ErrorNum: ".mysql_errno()); 
            Verbidung zur Server hergestellt.Verbindung mit der Datenbank erfolgreichINSERT INTO test (test1) VALUES ('345')Fehlerhafte Datenbankanfrage! Error: ErrorNum: 0

            check das nicht.


            ...kann das an iwas anderem liegen? Ich meine wenn ich den Befehl direkt in phpMyAdmin ausführe gehts. Gibt es Einstellungen wodurch Zugriffe geblockt werden oder ähnliches?
            db.jpg
            Zuletzt editiert von fakeAccount; 29.05.2014, 14:07.

            Comment


            • #7
              Hast du das Recht in die DB zu schreiben?
              Christian

              Comment


              • #8
                Ja ich habe alle Rechte...

                db.png

                Wenn ich
                PHP Code:
                "SELECT * FROM test"
                schicke bekomme ich auch den Fehler.
                Zuletzt editiert von fakeAccount; 29.05.2014, 14:41.

                Comment


                • #9
                  mysql_query($db_link, $db_command)

                  nach

                  mysql_query($db_command,$db_link)


                  >>>mysql_query(query,connection)
                  http://www.w3schools.com/php/func_mysql_query.asp



                  Christian

                  Comment


                  • #10
                    Verbidung zur Server hergestellt.Verbindung mit der Datenbank erfolgreichSELECT * FROM testAbfrage erfolgreichResource id #3

                    Cool danke

                    Comment

                    Working...
                    X