Ankündigung

Einklappen
Keine Ankündigung bisher.

INSERT INTO mit $_POST["test"]

Einklappen

Neue Werbung 2019

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

  • INSERT INTO mit $_POST["test"]

    Hallo,

    Ich würde ja gerne die Suchfunktion nutzen, um nachzuschauen, ob bereits ein ähnliches Thema existiert, habe aber leider keine gefunden! :O

    Ich möchte in meine MySQL Tabelle Werte aus einer HTML-Form schreiben. Das funktioniert aber leider nicht so wie ich mir das wünsche!

    PHP-Code:
    <?php
    $handle 
    mysql_connect ("localhost""root""password""testdb");
    $test mysql_real_escape_string($handle$_POST['test']);
        
    if(!
    $handle) {
        echo 
    'Keine Verbindung zur Datenbank m&ouml;glich!';
    } else {
        if (
    mysql_query('INSERT INTO test(test) VALUES ("$test")'$handle)) {
            echo 
    'Daten in `test` gespeichert!<br>';
        } else {
            echo 
    'Daten konnten nicht in `test` gespeichert werden!<br><text style="color: red">' mysql_error() . '</text><br>';
        }
    }
    ?>
    Fehler:
    Warning: mysql_real_escape_string() expects parameter 1 to be string, resource given in C:\xampp\htdocs\test.php on line 3

    Ich habe keine Ahnung, wieso dies nicht funktioniert :/

    Vielen Dank,
    PHPfisch

  • #2
    1) sollte auch dir gelingen in der hellblauen Navigationsleiste dieses Forums den Eintrag "Suchen" zu finden - direkt zwischen "Neue Beiträge" und "Nützliche Links"

    2) wie siehts denn mit deinen English Kenntnissen aus? Historisch verwenden die meisten Programmiersprachen nunmal englische Befehle und Fehlermeldungen, damit Compiler und Interpreter sprach-unabhängig bleiben können.

    3) Fehlermeldung mal bei Google ausprobiert ?
    Warning: mysql_real_escape_string() expects parameter 1 to be string, resource given in C:\xampp\htdocs\test.php on line 3
    der erste Parameter der Funktion soll der String-Wert aus dem Formular sein

    4)
    PHP-Code:
     if (mysql_query('INSERT INTO test(test) VALUES ("$test")'$handle)) 
    ein Hinweis auf 3) ... bei mysql_ steht der Datenbank-Handle immer als letzter Parameter

    5) bitte lerne NICHT die uralte mysql_-Erweiterung.. lerne bitte gleich mysqli oder noch besser PDO. Spätestens mit der neuen "großen" PHP-Version hat es sich höchstwahrscheinlich mit der mysql_-Erweiterung erledigt. Die Abschaffung ist bereits seit längerer Zeit erklärte Absicht der PHP-Entwickler

    6) zumindest meiner Erfahrung nach mag SQL keine Double-Quotes als StringBegrenzer ...

    7) mysql_query schickst du die Abfrage mit Single-Quote ab - in Single-Quotes wird aber die Variable $test nicht durch ihren Wert ersetzt ... verwende besser den Concat-Operator oder noch besser :
    schick das ganze in einer moderneren Datenbank-Erweiterung als prepared-Statement ab, dann sparst du dir auch das händische Escapen
    "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

    Kommentar


    • #3
      Hallo,

      Vielen Dank für deine Antwort!
      Nun funktioniert es.

      Die Suchfunktion wird nur angezeigt, wenn man angemeldet ist ... Vielleicht habe ich sie deshalb nicht gesehen

      Gruß
      PHPfisch

      Kommentar

      Lädt...
      X