[PHP] Zeigt INSERT INTO als Fehler?

  • Hey :)

    bin grade dabei aus einem Eintragsfeld Name und einen Eintrag die Daten in eine Datenbank zu verschieben,
    damit ich danach die Einträge auf einer anderen Seite wieder "hervorholen" kann ...
    Ich habe den folgenden Code (DBPasswort, Username und DBname wurden entfernt..)

    PHP
    <?php
    mysql_connect("localhost", "dbuser","dbpw") or die ("Verbindung zur Datenbank fehlgeschlagen. contact admin!");
    mysql_select_db("") or die ("Oups, die Datenbank ist verloren gegangen. contact admin!");
    $dbname="";
    $dbhost="localhost";
    $dbuser="";
    $dbpass="";
    ?>
    HTML
    <body>
             <form method="post" name="eintrag">
             <input height="100%" width="100%" type="text" name="eintrag">
             <input type="text" name="name" height="100%" width="100%">
             <input type="submit" value="Senden">
             </form>

    Nun bekomme ich folgende Fehlermeldung im Browser:

    Zitat

    Parse error: syntax error, unexpected T_STRING in /.../input.php on line 20

    Auf Zeile befindet sich:

    PHP
    INSERT INTO

    Wieso ist das falsch ? Ich habe den Fehler gegooglt, jedoch konnte ich nur finden, dass dieser Fehler auftaucht, wenn Anführungszeichen oder Baskslashs fehlen ^^
    Aber bei INSERT INTO brauch man doch keine Anführungszeichen odeeer? :S

    Hoffe um Rat :?


    Liebe Grüße
    Tim :oops:

  • Aber bei INSERT INTO brauch man doch keine Anführungszeichen odeeer? :S

    Doch :)

    INSERT INTO ist ein SQL-Befehl. Dieser wird in Anführungszeichen eingebettet. Am besten wertest du den Aufruf noch mit einer Variablen aus, dann weisst du, ob alles geklappt hat oder nicht. Das würde dann so aussehen:


    Ist es richtig, dass deine Tabelle "eintrag" heißt? Ich finde es ein bisschen verwirrend, einer Tabelle, einer Spalte und einer Variablen den gleichen Namen zu geben.

  • Danke für den Lösungsvorschlag.
    In der Zeit zwischen deiner Antwort habe ich alles nochmal etwas umgeschrieben und die Tabellen per PHP erstellen lassen ^^

    Mein PHP-Code sieht nun so aus (Das Die Tabelle und Spalte jeweils Eintrag hieß, geb ich dir Recht totaler Bullshit):

    Aber:

    Zitat

    Parse error: syntax error, unexpected T_VARIABLE in /.../input.php on line 13

    Auf Zeile 13:

    PHP
    $query = "INSERT INTO Eintrag(Name, Text, Datum)VALUES($_POST['name'],$_POST['eintrag'],NOW()";


    hm? :S
    Kann da noch jemand helfen ?

  • Bei mysqlquery fehlen zwei schließende runde Klammern und ein Semikolon am Ende.

    Hinter Values fehlt auch noch eine schließende runde Klammer.

    Bei if fehlt eine schließende, geschweifte Klammer.

    Kontrolliere am besten mal alle deine Klammern, ob sie geschlossen sind. Am einfachsten geht das, wenn du einen Editor mit Syntax-Highlightning verwendest, z. B. den Notepad++

  • Doch noch ne Frage :SS
    Ich habe jetzt eine input.php wo Text und Name eingegeben werden muss.
    Das Datum wird dann abgespeichert durch NOW() ..
    Auf der index.php soll innerhalb einer Tabelle die Infos einzelnd wiedergegeben werden ..
    Nun meine fertige PHP-Datei für die input.php sieht folgender Maßen aus:

    Und meine index.php (wo innerhalb des "main-"divs die Tabelle angeordnet wurde):

    Kriege keine Fehlermeldung, jedoch habe ich versucht per Testeinträge ein paar Einträge auf die index.php zu bringen, jedoch kommt dort nichts :S
    Kann mir jemand sagen wieso und was noch fehlt? :S

    Liebe Grüße

    3 Mal editiert, zuletzt von Bleistift (29. März 2012 um 21:02)

  • Kriege keine Fehlermeldung


    Wie auch, wenn du keinen Fehler abfängst. Und warum willst du jedes mal ein "create table" machen, das ist doch Quatsch!

    Deine Scripte sind, vorsichtig ausgedrückt, schlecht bis unbrauchbar. Die kannst du in die Tonne hauen, dir fehlen einige Grundlagen in Sachen Datenbank-Handling!

  • Nunja die versuch ich mir ja gerade anzueignen :)
    da kann man nicht erwarten das ich prompt mit super Scripts da bin wo ich alles mit drin habe ^^
    Da ich manche dinge nicht finde kann ich auch nicht nach schauen was fehlt ..
    Daher frage ich hier ^^
    Das ich keine Fehler abfange ? Ich bin 2 php Tutorials durchgegangen (die Grundlagen und Eingaben von Datenschätzen in eine Datenbank und das wieder aufrufen der Datensätze ..

    Also danke für deinen Beitrag aber weiter bringt er mich nicht :)
    Kein Stück

  • Och menno, du willst mir doch wohl nicht erzählen, dass du den ganzen Käse aus einem Tutorial hast. So schlechte Tutorials gibt es nicht! Alleine der Teil

    PHP
    <?php
      $txt = mysql_query("SELECT Eintrag (Text)");
      echo $txt;
    ?>


    beweist, dass du dir das nie richtig angesehen hast, oder du absolut NULL davon verstanden hast! Und komm' mir bitte nicht an, du hättest auch schon hier im Forum gesucht. Wenn ich in der erweiterten Suche als Suchbegriff mysql_query und als Benutzer Bandit eingebe, bekomme ich alleine schon 5 Seiten Treffer. Da kann man sich genug abgucken, wenn man denn will!

  • Er meinte das, was ich schon in meinem ersten Beitrag geschrieben hatte. Du musst deine Datenbankabfrage erst mal darauf überprüfen, ob sie Erfolg hatte. Falls nicht, soll eine Fehlermeldung erscheinen, die dir bei der Fehlersuche weiterhilft. Das machst du so:

    PHP
    $txt = mysql_query("SELECT Eintrag (Text)");
    $result = mysql_query($txt) or die ("MySQL-Fehler: " . mysql_error());

    Vielleicht solltest du dir auch mal ein Buch über PHP und MySQL kaufen. Zumindest bei mir war es so, dass ich damit besser lernen konnte als mit einem Internet-Tutorial.

  • Und noch ein Tipp: wenn man frisch mit PHP/MySQL anfängt, sollte man besser die mysqli-Extension verwenden. Die alte mysql-Extension wird in nicht allzu ferner Zukunft aus PHP verschwinden.