insert. Php geht nicht

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

  • insert. Php geht nicht

    Hi,

    ich habe ein kleines Problem. Und zwar habe ich versucht durch ein Formular mit Php script etwas in eine Tabelle in der Datenbank zu schreiben. Formular funzt, nur die insert.php bereitet mit probleme.

    Hier ist der Code:

    <?php
    include ('config.php');
    $eintrag = INSERT INTO mitglieder (Vorname, Name)
    VALUES ('$_GET["vorname"]', '$_GET["name"]') ;

    mysql_query( $eintrag) or die (mysql_error());
    ?>

    Nun kommt immer die Fehlermeldung:

    Parse error: syntax error, unexpected T_STRING in C:\apachefriends\xampp\htdocs\xampp\test\insert.php on line 3

    Was sagt das aus und vor allem Dingen wie kann ich den Fehler beheben. Bisher war ich sehr erfolglos!

    Danke für Antworten schon im Voraus!

    MFG

    BUP

  • #2
    STRINGS gehören in anführungszeichen ... dein insert-statement ist ein string!
    Kissolino.com

    Kommentar


    • #3
      dein insert-statement ist ein string!
      nee, ist es nicht
      Die Zeit hat ihre Kinder längst gefressen

      Kommentar


      • #4
        vieleicht solltest du PHP darauf aufmerksam machen das nun SQL an der reihe ist?

        Stichwort: mysql_query()
        Anwälte in Vulkane werfen -
        Wer anderen eine Bratwurst brät, der besitzt ein Bratwurstbratgerät!

        Kommentar


        • #5
          Original geschrieben von flyingMiATA
          vieleicht solltest du PHP darauf aufmerksam machen das nun SQL an der reihe ist?

          Stichwort: mysql_query()
          Hat er doch?

          viel wichtiger ist das Geraffel hier:

          PHP-Code:
          $eintrag INSERT INTO mitglieder (VornameName)
          VALUES ('$_GET["vorname"]''$_GET["name"]') ; 
          Und die Tatsache das er nicht mal ordnungsgemäß posten kann
          [color=blue]MfG Payne_of_Death[/color]

          [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
          [color=red]Merke:[/color]
          [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

          Murphy`s Importanst LAWS
          Jede Lösung bringt nur neue Probleme
          Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
          In jedem kleinen Problem steckt ein großes, das gern raus moechte.

          Kommentar


          • #6
            HI,

            was ist denn an dem "Geraffel" falsch?

            ich habs auchmal mit absoluten Werten probiert. Brachte aber keine Änderung der Fehlermeldung.

            Hab auch schon Anführungszeichen vor insert und hinter dem ; gesetzt, hat aber nichts gebracht. Nur ne andere fehlermeldung, dass er die "" dort nicht erwartet.

            Was meinst du eigentlich mit ordnungsgemäß posten? Ist das erste Mal dass ich hier bin.

            Ciao

            Kommentar


            • #7
              Original geschrieben von derHund
              nee, ist es nicht
              OffTopic:
              haarspalter


              @bup
              - du musst gleiche anführungszeichen in strings entwerten => escapen
              - starte mal bei den grundlagen mit www.schattenbaum.net

              ... to be continued ...
              Kissolino.com

              Kommentar


              • #8
                Original geschrieben von Bup
                HI,

                was ist denn an dem "Geraffel" falsch?

                ich habs auchmal mit absoluten Werten probiert. Brachte aber keine Änderung der Fehlermeldung.

                also aus
                resource mysql_query ( string Anfrage [, resource Verbindungs-Kennung])
                Kann man entnehmen das die Funktion eine Resource zurückgibt als Parameter zwingend einen String und optional die Verbindungskennung erwartet.......

                PHP-Code:
                $eintrag INSERT INTO mitglieder (VornameName)
                VALUES ('$_GET["vorname"]''$_GET["name"]') ; 
                Und das ist kein String, PHP meint nun es seien Konstanten oder ähnliches.......

                richtig wäre z.B.
                PHP-Code:
                $eintrag "INSERT INTO mitglieder (Vorname, Name)
                VALUES ('"
                .$_GET["vorname"]."', '".$_GET["name"]."')" 
                Ich hoffe du hast eine entsprechende MySQL Einstellung in der php.ini festgelegt das die Variabeln mit einer Slash maskiert werden sonst sind SQL Injections möglich.....
                http://de.php.net/manual/de/ref.info...gic-quotes-gpc

                Was meinst du eigentlich mit ordnungsgemäß posten? Ist das erste Mal dass ich hier bin.

                Ist mir entgangen aber das mal durchlesen:
                http://www.php-resource.de/forum/sho...threadid=47906
                [color=blue]MfG Payne_of_Death[/color]

                [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                [color=red]Merke:[/color]
                [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                Murphy`s Importanst LAWS
                Jede Lösung bringt nur neue Probleme
                Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                Kommentar


                • #9
                  Original geschrieben von Payne_of_Death

                  PHP-Code:
                  $eintrag INSERT INTO mitglieder (VornameName)
                  VALUES ('$_GET["vorname"]''$_GET["name"]') ; 
                  Und das ist kein String, PHP meint nun es seien Konstanten oder ähnliches.......

                  richtig wäre z.B.
                  PHP-Code:
                  $eintrag "INSERT INTO mitglieder (Vorname, Name)
                  VALUES ('"
                  .$_GET["vorname"]."', '".$_GET["name"]."')" 


                  PHP-Code:
                  //müsste es nicht sogar so sein
                  $_GET['name']
                  //statt
                  $_GET["name"]

                  //und dann ist noch folgendes Interressant 
                  mysql_escape_string()
                  //bzw.
                  mysql_real_escape_string() 
                  mfg
                  marc75

                  <Platz für anderes>

                  Kommentar


                  • #10
                    [php]//müsste es nicht sogar so sein
                    $_GET['name']
                    //statt
                    $_GET["name"][/quote]

                    Ist doch egal..?
                    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                    var_dump(), print_r(), debug_backtrace und echo.
                    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                    Kommentar


                    • #11
                      Original geschrieben von Shurakai
                      PHP-Code:
                      //müsste es nicht sogar so sein
                      $_GET['name']
                      //statt
                      $_GET["name"]

                      Ist doch egal..? 
                      Genau.....Es muss lediglich ein String sein und das ist in PHP entweder " oder '
                      [color=blue]MfG Payne_of_Death[/color]

                      [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                      [color=red]Merke:[/color]
                      [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                      Murphy`s Importanst LAWS
                      Jede Lösung bringt nur neue Probleme
                      Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                      In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                      Kommentar


                      • #12
                        Text zwischen Hochkommata wird vom Interpreter nicht interpretiert.

                        Alles zwischen Anführungszeichen wird interpretiert.

                        Daher läuft
                        $_GET['name']
                        ein klein wenig performanter, als
                        $_GET["name"],

                        da der Interpreter nicht erst überprüfen muss, ob der Schlüsselname berechnet werden muss.

                        Siehe String Type
                        Happiness is an empty error log

                        Kommentar


                        • #13
                          Original geschrieben von Cymon
                          Text zwischen Hochkommata wird vom Interpreter nicht interpretiert.

                          Alles zwischen Anführungszeichen wird interpretiert.

                          Daher läuft
                          $_GET['name']
                          ein klein wenig performanter, als
                          $_GET["name"],

                          da der Interpreter nicht erst überprüfen muss, ob der Schlüsselname berechnet werden muss.

                          Siehe String Type
                          Ja das wird auch ersichtlich wenn man anstatt

                          PHP-Code:
                          echo "$blubb"
                          mal

                          PHP-Code:
                          echo '$blubb'
                          macht.....
                          [color=blue]MfG Payne_of_Death[/color]

                          [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                          [color=red]Merke:[/color]
                          [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                          Murphy`s Importanst LAWS
                          Jede Lösung bringt nur neue Probleme
                          Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                          In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                          Kommentar


                          • #14
                            Danke,

                            jetzt funzt es. Ich bekomme keine Fehlermeldungen mehr und er macht einen neuen Eintrag in der Tabelle. Allerdings werden die EWinträge aus dem Formular nicht übermittelt.
                            Soll heißen, die Tabelle wird ein neuer eintrag hinzugefügt, aber ohne Inhalt!!

                            MFG

                            Kommentar


                            • #15
                              Sind die Variablen vielleicht leer? Testausgaben? Nutzt du überhaupt GET
                              für das Formular?!?

                              Kommentar

                              Lädt...
                              X