[PHP] Kundenformular Fehlersuche :/

Dieses Thema im Forum "Webentwicklung" wurde erstellt von klaxx, 18. Januar 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 18. Januar 2009
    Kundenformular Fehlersuche :/

    Normal soll das in die DB geschrieben werden. Die Fehlermeldung ist:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '44, 45478, Mülheim an der Ruhr, 21-12-1954, 0208/484184, d.raum@arcor.de, , 156' at line 1

    PHP:
    <? php
    // Datenbank Connection
    $host  "localhost" ;
    $user  "root" ;
    $password  "" ;
    $dbname  "knikkis" ;
    $tabelle  = "kunde" ;
    $connection = mysql_connect ( $host , $user $password ) or die( "Verbindungsversuch fehlgeschlagen" );
    // Datenbank Connection End
    // Datenübergabe aus Formular
    $nick          $_POST [ 'nick' ];
    $vorname      $_POST [ 'vorname' ];
    $name         $_POST [ 'nachname' ];
    $strasse     $_POST [ 'strasse' ];
    $plz         $_POST [ plz ];
    $ort         $_POST [ 'ort' ];
    $geb         $_POST [ 'datum' ];
    $tel         $_POST [ tel ];
    $mail         $_POST [ 'mail' ];
    $konto         $_POST [ ktn ];
    $blz         $_POST [ blz ];
    $password     $_POST [ 'password' ];
    // Datenübergabe aus Formular End
    //Eintrag in DB
    mysql_select_db ( $dbname ) or die( mysql_error ());
    $sql  "INSERT INTO ` $tabelle ` (``,`nick`, `vorname`, `name`, `strasse`, `plz`, `ort`, `geb`, `tel`, `email`, `ktn`, `blz`, `password`)                            VALUES ( $nick $vorname $name $strasse $plz $ort $geb $tel $mail $ktn $blz $password )" ;
    mysql_query ( $sql ) or die( mysql_error ());
    //Eintrag in DB End
    // Close Connection
    mysql_close ( $connection );

    ?>
     
  2. 18. Januar 2009
    AW: Kundenformular Fehlersuche :/

    Bei dir ist ein Feld zu viel...
    (``,`nick`, `vorname`, `name`, [...]
    VALUES ($nick, $vorname, $name, $strasse, [...]
    Du setzt nichts in das Feld `` ein...
    Außerdem gibts keine Felder ohne Namen

    Wenn das nit funzt:
    Du musst in deinen Query, bei der Übergabe der Werte ' ' verwenden:
    PHP:
    $sql  "INSERT INTO ` $tabelle ` (`nick`, `vorname`, `name`, `strasse`, `plz`, `ort`, `geb`, `tel`, `email`, `ktn`, `blz`, `password`) VALUES (' $nick ', ' $vorname ', ' $name ', ' $strasse ', ' $plz ', ' $ort ', ' $geb ', ' $tel ', ' $mail ', ' $ktn ', ' $blz ', ' $password ')"
     
  3. 18. Januar 2009
    AW: Kundenformular Fehlersuche :/

    du musst die daten noch escapen, bevor du sie in die DB schriebst.
     
  4. 18. Januar 2009
    AW: Kundenformular Fehlersuche :/

    naja aber sein Query is so oder so fehlerhaft..
    er hat 12 Felder angegeben, wo was rein soll, aber nur 11 Werte..^^
     
  5. 18. Januar 2009
    AW: Kundenformular Fehlersuche :/

    ganz wichtig: formatiere deine sql-querys, denn dann hast du nen besseren überblick.

    PHP:
    <? php
        
    // Datenbank Connection
        
    $host          "localhost" ;
        
    $user          "root" ;
        
    $password      "" ;
        
    $dbname      "knikkis" ;
        
    $tabelle      "kunde" ;
        
    $connection  mysql_connect ( $host , $user $password ) or exit( "Verbindungsversuch fehlgeschlagen" );
        
    // Datenbank Connection End
        // Datenübergabe aus Formular
        
    $nick          $_POST [ 'nick' ];
        
    $vorname      $_POST [ 'vorname' ];
        
    $name         $_POST [ 'nachname' ];
        
    $strasse      $_POST [ 'strasse' ];
        
    $plz          $_POST [ 'plz' ];
        
    $ort          $_POST [ 'ort' ];
        
    $geb          $_POST [ 'datum' ];
        
    $tel           $_POST [ 'tel' ];
        
    $mail        $_POST [ 'mail' ];
        
    $konto         $_POST [ 'ktn' ];
        
    $blz         $_POST [ 'blz' ];
        
    $password       $_POST [ 'password' ];
        
    // Datenübergabe aus Formular End
        //Eintrag in DB
        
    mysql_select_db ( $dbname ) or exit( mysql_error ());
        
    $sql  mysql_query ( "
            INSERT INTO `
    { $tabelle } ` (
                `nick`, `vorname`, `name`, 
                `strasse`, `plz`, `ort`, 
                `geb`, `tel`, `email`, 
                `ktn`, `blz`, `password`
            ) VALUES (
                '
    { $nick } ', ' { $vorname } ', ' { $name } ', 
                '
    { $strasse } ', ' { $plz } , ' { $ort } ', 
                '
    { $geb } ', ' { $tel } ', ' { $mail } ', 
                '
    { $ktn } , ' { $blz } ', ' { $password } '
            )
        "
    ) or exit( mysql_error ());
        
    //Eintrag in DB End
        // Close Connection
        
    mysql_close ( $connection );
    ?> 
    datein beim eintrag escapen sollte wohl klar sein, hab ich mit absicht hier weggelassen.
     
  6. 18. Januar 2009
    AW: Kundenformular Fehlersuche :/

    Mal ne kurze Frage, bringen die {} um die Variablen was, oder ist das nur wegen dem überblick?
     
  7. 18. Januar 2009
    AW: Kundenformular Fehlersuche :/

    die "{}" im string geben an von wo bis wo die variable interpretiert werden soll.

    PHP: Strings - Manual
     
  8. 19. Januar 2009
    AW: Kundenformular Fehlersuche :/

    ? Die Escape Variante wäre dann so:

    PHP:
     
     $nick 
    $_POST [ 'nick' ]; 
     
    // Die Textdaten maskieren
     
    $nick  pg_escape_string ( $nick );
      
      
    // und in die Datenbank einfügen
      
    pg_query ( "INSERT INTO kunde (nick) VALUES ( ' { $nick } ')" );
    Das ist natürlich nicht selbst erdacht sondern aus PHP manual. Ich versuchs nur zu verstehen^^
     
  9. 19. Januar 2009
    AW: Kundenformular Fehlersuche :/

    pg_escape_string wäre für PostgreSQL

    du brauchst: mysql_real_escape_string

    ich glaub das ganze wird immer mehr zu ner meta-frage, deswegen schließ ich hier ab.
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.