74487
21.07.2009, aktualisiert am 03.08.2009
11663
4
0
Mehrere PHP-Variablen in SQL übergeben
Hallo,
eine Frage:
mysql_query("INSERT INTO customer_user (login, email, customer_id, pw, salutation, first_name, last_name, comments, valid_id, create_time, create_by, change_time, change_by, phone)
VALUES ("$to_sql_login, $to_sql_email, $to_sql_customer_id, $to_sql_passwd, $to_sql_salutation, $to_sql_first_name, $to_sql_last_name, $to_sql_comments, $to_sql_valid_id, $to_sql_create_time, $to_sql_create_by, $to_sql_change_time, $to_sql_change_by, $to_sql_phone")");
Geht das? Und wenn nicht, wie muss es richtig aussehen?
Danke.
eine Frage:
mysql_query("INSERT INTO customer_user (login, email, customer_id, pw, salutation, first_name, last_name, comments, valid_id, create_time, create_by, change_time, change_by, phone)
VALUES ("$to_sql_login, $to_sql_email, $to_sql_customer_id, $to_sql_passwd, $to_sql_salutation, $to_sql_first_name, $to_sql_last_name, $to_sql_comments, $to_sql_valid_id, $to_sql_create_time, $to_sql_create_by, $to_sql_change_time, $to_sql_change_by, $to_sql_phone")");
Geht das? Und wenn nicht, wie muss es richtig aussehen?
Danke.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 120954
Url: https://administrator.de/contentid/120954
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
4 Kommentare
Neuester Kommentar
ja, das geht
die Anführungszeichen hinter VALUES, also nach der Klammer müssen weg. Bitte achte auch darauf, ob es bei einem Feld eine Zeichenkette ist oder eine Zahl (Feldinhalte bei einem Feld vom Typ Varchar brauchen ein ' als Trennzeichen, weil ja ein Komma auch noch zur Zeichenkette theoretisch mit dazu gehören könnte).
Viele Grüße,
Daniel
die Anführungszeichen hinter VALUES, also nach der Klammer müssen weg. Bitte achte auch darauf, ob es bei einem Feld eine Zeichenkette ist oder eine Zahl (Feldinhalte bei einem Feld vom Typ Varchar brauchen ein ' als Trennzeichen, weil ja ein Komma auch noch zur Zeichenkette theoretisch mit dazu gehören könnte).
mysql_query("INSERT INTO customer_user (login, email, customer_id, pw, salutation, first_name, last_name, comments, valid_id, create_time, create_by, change_time, change_by, phone) VALUES ($to_sql_login, $to_sql_email, $to_sql_customer_id, $to_sql_passwd, $to_sql_salutation, $to_sql_first_name, $to_sql_last_name, $to_sql_comments, $to_sql_valid_id, $to_sql_create_time, $to_sql_create_by, $to_sql_change_time, $to_sql_change_by, $to_sql_phone)");
Viele Grüße,
Daniel
das spielt momentan keine große Rolle, die Zuweisung des Inhalts an die Variable.
Wichtig ist einfach, dass wenn in deiner MySQL-Datenbank ein Feld ist vom Typ VARCHAR, dann muss das auch beim INSERT INTO entsprechend angepasst werden, also vor der Variablen und nach der Variablen ein Apostroph einfügen (aber nur bei einer Zeichenkette!):
Wichtig ist noch, dass du den Inhalt einer Variablen auf Sonderzeichen prüfst, damit der SQL Befehl nicht kaputt geht bzw. SQL-Injection betrieben wird. Weil wenn innerhalb der Zeichenkette auch das ' vorkommt, dann dient das als Ende der Zeichenkette im SQL String und somit ist dieser dann fehlerhaft.
Schau dir dazu mal den Befehl mysql_escape_string() an: http://us.php.net/manual/en/function.mysql-escape-string.php
Viele Grüße,
Daniel
Wichtig ist einfach, dass wenn in deiner MySQL-Datenbank ein Feld ist vom Typ VARCHAR, dann muss das auch beim INSERT INTO entsprechend angepasst werden, also vor der Variablen und nach der Variablen ein Apostroph einfügen (aber nur bei einer Zeichenkette!):
<?
$sqlinsert="INSERT INTO Tabelle (Name, Alter) VALUES ('" . $to_sql_name . "', $to_sql_alter)";
mysql_query($sqlinsert);
?>
Wichtig ist noch, dass du den Inhalt einer Variablen auf Sonderzeichen prüfst, damit der SQL Befehl nicht kaputt geht bzw. SQL-Injection betrieben wird. Weil wenn innerhalb der Zeichenkette auch das ' vorkommt, dann dient das als Ende der Zeichenkette im SQL String und somit ist dieser dann fehlerhaft.
Schau dir dazu mal den Befehl mysql_escape_string() an: http://us.php.net/manual/en/function.mysql-escape-string.php
Viele Grüße,
Daniel