Problem mit inser-befehl (mysql-php)

Fabian Frank

Erfahrenes Mitglied
Hallo!

Kann mir bitte jemand bei folgendem Problem helfen?:

Der COde ist:

PHP:
<?php
$sql = "INSERT INTO  
          user (anrede, vorname, nachname, ort, straße, plz, land, telefon, email, passwort, height, width, url_banner, bannerformat, mouseover, url_hp, describe, code, zahlungsmethode)
          VALUES ($_POST['anrede'], $_POST['vorname'], $_POST['nachname'], $_POST['ort'], $_POST['straße'], $_POST['plz'], $_POST['land'], $_POST['telefon'], $_POST['email'], $_POST['passwort_1'], $_POST['height'], $_POST['width'], $_POST['url_banner'], $_POST['bannerdatei'], $_POST['mouseover'], $_POST['url_hp'], $_POST['beschreibung'], $_POST['code'], $_POST['zahlungsart'], $_POST['activated'])";?>

Wenn ich es jedoch ausführe gibt er aus, dass in der Value-Zeile etwas nicht stimmt. Der Fehler Code ist:
Code:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/web39/html/addlink/regist_2.php on line 103

Zeile 103 ist in dem Fall die Zeile, wo Value beginnt und aufhört....

Danke,

Viele Grüße,

Fabi
 
Hallo,

versuch einmal diese Version:

PHP:
<?php

  
 $sql = "INSERT INTO user   
         VALUES ('".$_POST['anrede']."', 
                 '".$_POST['vorname']."', 
                 '".$_POST['nachname']."', 
                 '".$_POST['ort']."', 
                 '".$_POST['straße']."', 
                 '".$_POST['plz']."', 
                 '".$_POST['land']."', 
                 '".$_POST['telefon']."', 
                 '".$_POST['email']."', 
                 '".$_POST['passwort_1']."', 
                 '".$_POST['height']."', 
                 '".$_POST['width']."', 
                 '".$_POST['url_banner']."', 
                 '".$_POST['bannerdatei']."', 
                 '".$_POST['mouseover']."', 
                 '".$_POST['url_hp']."', 
                 '".$_POST['beschreibung']."', 
                 '".$_POST['code']."', 
                 '".$_POST['zahlungsart']."', 
                 '".$_POST['activated']."')";

?>
Gruß

RS9999:)
 
Zeichenketten müssen – egal in welcher Sprache – auch als solche ausgezeichnet werden. Mein Vorschlag:
PHP:
<?php

	$query = '
		INSERT INTO
		        `user`
		  SET
		        `anrede`          = "'.mysql_real_escape_string($_POST['anrede']).'",
		        `vorname`         = "'.mysql_real_escape_string($_POST['vorname']).'",
		        `nachname`        = "'.mysql_real_escape_string($_POST['nachname']).'",
		        `ort`             = "'.mysql_real_escape_string($_POST['ort']).'",
		        `straße`          = "'.mysql_real_escape_string($_POST['straße']).'",
		        `plz`             = "'.mysql_real_escape_string($_POST['plz']).'",
		        `land`            = "'.mysql_real_escape_string($_POST['land']).'",
		        `telefon`         = "'.mysql_real_escape_string($_POST['telefon']).'",
		        `email`           = "'.mysql_real_escape_string($_POST['email']).'",
		        `passwort`        = "'.mysql_real_escape_string($_POST['passwort']).'",
		        `height`          = "'.mysql_real_escape_string($_POST['height']).'",
		        `width`           = "'.mysql_real_escape_string($_POST['width']).'",
		        `url_banner`      = "'.mysql_real_escape_string($_POST['url_banner']).'",
		        `bannerformat`    = "'.mysql_real_escape_string($_POST['bannerformat']).'",
		        `mouseover`       = "'.mysql_real_escape_string($_POST['mouseover']).'",
		        `url_hp`          = "'.mysql_real_escape_string($_POST['url_hp']).'",
		        `describe`        = "'.mysql_real_escape_string($_POST['describe']).'",
		        `code`            = "'.mysql_real_escape_string($_POST['code']).'",
		        `zahlungsmethode` = "'.mysql_real_escape_string($_POST['zahlungsart']).'",
		        `activated`       = "'.mysql_real_escape_string($_POST['activated']).'"
		';

?>
 
Hallo Gumbo,

erstmal danke für deine Hilfe, aber das hat leider auch nicht geklappt.

Also, das script sieht wie folgt aus:


Code:
       $connectionid  = mysql_connect ("localhost", "web++", "pw"); 
    if (!mysql_select_db ("usr_web39_1", $connectionid)) 
    { 
    die ("&nbsp;Es konnte leider keine Verbindung zur Datenbank hergestellt werden. Sollte dieser Fehler zu einem späteren Zeitpunkt erneut auftreten, teilen Sie dies uns bitte mit."); 
    }
    $query = ' 
        INSERT INTO 
                `members` 
          SET 
                `anrede`          = "'.mysql_real_escape_string($_POST['anrede']).'", 
                `vorname`         = "'.mysql_real_escape_string($_POST['vorname']).'", 
                `nachname`        = "'.mysql_real_escape_string($_POST['nachname']).'", 
                `ort`             = "'.mysql_real_escape_string($_POST['ort']).'", 
                `strasse`          = "'.mysql_real_escape_string($_POST['strasse']).'", 
                `plz`             = "'.mysql_real_escape_string($_POST['plz']).'", 
                `land`            = "'.mysql_real_escape_string($_POST['land']).'", 
                `telefon`         = "'.mysql_real_escape_string($_POST['telefon']).'", 
                `email`           = "'.mysql_real_escape_string($_POST['email']).'", 
                `passwort`        = "'.mysql_real_escape_string($_POST['passwort']).'", 
                `height`          = "'.mysql_real_escape_string($_POST['height']).'", 
                `width`           = "'.mysql_real_escape_string($_POST['width']).'", 
                `url_banner`      = "'.mysql_real_escape_string($_POST['url_banner']).'", 
                `bannerformat`    = "'.mysql_real_escape_string($_POST['bannerformat']).'", 
                `mouseover`       = "'.mysql_real_escape_string($_POST['mouseover']).'", 
                `url_hp`          = "'.mysql_real_escape_string($_POST['url_hp']).'", 
                `code`            = "'.mysql_real_escape_string($_POST['code']).'", 
                `zahlungsmethode` = "'.mysql_real_escape_string($_POST['zahlungsart']).'", 
                `activated`       = "'.mysql_real_escape_string($_POST['activated']).'" 
        ';

alles passt, nur wenn ich dann in die db schau, ist da kein neuer eintrag...

Danke schonmal im vorraus,

Grüße,

Fabi
 
Zuletzt bearbeitet:
Fabian, dir ist schon klar, dass du die Query erst noch mittels [phpf]mysql_query[/phpf] stellen musst? Es genügt nicht, sie nur in einer Variable zu speichern.

Wenn es dann immer noch nicht geht, probier mal folgendes Konstrukt:
PHP:
mysql_query('deine superlange Query') or die(mysql_error());
Übrigens hat es noch einen Schreibfehler in der Query: Es sollte wohl $_POST['zahlungsmethode'] heissen, da fehlt aber noch ein m. Ausserdem solltest du nach Möglichkeit keine Sonderzeichen (wie z. B. ß) verwenden.
 
Zuletzt bearbeitet:
so, oder wie soll ich das machen? es geht nämlich net...

PHP:
    $query = ' 
        INSERT INTO 
                `members` 
          VALUE 
                `anrede`          = "'.mysql_real_escape_string($_POST['anrede']).'", 
                `vorname`         = "'.mysql_real_escape_string($_POST['vorname']).'", 
                `nachname`        = "'.mysql_real_escape_string($_POST['nachname']).'", 
                `ort`             = "'.mysql_real_escape_string($_POST['ort']).'", 
                `strasse`         = "'.mysql_real_escape_string($_POST['strasse']).'", 
                `plz`             = "'.mysql_real_escape_string($_POST['plz']).'", 
                `land`            = "'.mysql_real_escape_string($_POST['land']).'", 
                `telefon`         = "'.mysql_real_escape_string($_POST['telefon']).'", 
                `email`           = "'.mysql_real_escape_string($_POST['email']).'", 
                `passwort`        = "'.mysql_real_escape_string($_POST['passwort_1']).'", 
                `height`          = "'.mysql_real_escape_string($_POST['height']).'", 
                `width`           = "'.mysql_real_escape_string($_POST['width']).'", 
                `url_banner`      = "'.mysql_real_escape_string($_POST['url_banner']).'", 
                `bannerformat`    = "'.mysql_real_escape_string($_POST['bannerformat']).'", 
                `mouseover`       = "'.mysql_real_escape_string($_POST['mouseover']).'", 
                `url_hp`          = "'.mysql_real_escape_string($_POST['url_hp']).'", 
                `code`            = "'.mysql_real_escape_string($_POST['code']).'", 
                `zahlungsmethode` = "'.mysql_real_escape_string($_POST['zahlungsart']).'", 
                `activated`       = "'.mysql_real_escape_string($_POST['activated']).'" 
        '; 
		$result = mysql_query('$query');
if (!$result) {
   die('Invalid query: ' . mysql_error());
}
 
fehlermeldung ist:

Code:
Invalid query: 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 '$query' at line 1
 
Hallo,
so vielleicht:
PHP:
$query = '  
        INSERT INTO  
                `members`  
          VALUE  
                `anrede`          = "'.mysql_real_escape_string($_POST['anrede']).'",  
                `vorname`         = "'.mysql_real_escape_string($_POST['vorname']).'",  
                `nachname`        = "'.mysql_real_escape_string($_POST['nachname']).'",  
                `ort`             = "'.mysql_real_escape_string($_POST['ort']).'",  
                `strasse`         = "'.mysql_real_escape_string($_POST['strasse']).'",  
                `plz`             = "'.mysql_real_escape_string($_POST['plz']).'",  
                `land`            = "'.mysql_real_escape_string($_POST['land']).'",  
                `telefon`         = "'.mysql_real_escape_string($_POST['telefon']).'",  
                `email`           = "'.mysql_real_escape_string($_POST['email']).'",  
                `passwort`        = "'.mysql_real_escape_string($_POST['passwort_1']).'",  
                `height`          = "'.mysql_real_escape_string($_POST['height']).'",  
                `width`           = "'.mysql_real_escape_string($_POST['width']).'",  
                `url_banner`      = "'.mysql_real_escape_string($_POST['url_banner']).'",  
                `bannerformat`    = "'.mysql_real_escape_string($_POST['bannerformat']).'",  
                `mouseover`       = "'.mysql_real_escape_string($_POST['mouseover']).'",  
                `url_hp`          = "'.mysql_real_escape_string($_POST['url_hp']).'",  
                `code`            = "'.mysql_real_escape_string($_POST['code']).'",  
                `zahlungsmethode` = "'.mysql_real_escape_string($_POST['zahlungsart']).'",  
                `activated`       = "'.mysql_real_escape_string($_POST['activated']).'"  
        ';  
        $result = mysql_query($query); 
if (!$result) { 
   die('Invalid query: ' . mysql_error()); 
}

mfg
forsterm
 
Lass einfach die einfachen Anführungszeichen bei der Notation des Parameters der mysql_query()-Funktion weg – wozu hast du dort überhaupt welche gesetzt?
 
Zurück