5Danke
ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
558
558
EMPFEHLEN
-
Hi,
ich hab ein Grammatik Problem. In einem Formular packe ich alle Session-Variablen so in ein Array:Danach die Daten in eine Datenbanktabelle.PHP-Code:foreach($_SESSION as $key => $value) {
$data[$key] = filter($value);
Das geht mit der Variablen $data[Adresse], aber mit $data[formData][0] so jedenfalls nicht.PHP-Code:$users_sql = "INSERT INTO `tblxyz`
(`Adresse`, `Email`)
VALUES ('$data[Adresse]','$data[formData][0]')";
mysql_query($users_sql,$link) or die("Dateneinspielung fehlgeschlagen:" . mysql_error());
Mag mir jemand helfen?
-
Hi,
probiers mal in geschweiften Klammern:
Code sql:1
VALUES ('$data[Adresse]','{$data[formData][0]}')";
Ansonsten mach mal nen var_dump($data) um zu sehen ob das Array richtig befüllt wurde.
Gruss Joe.
-
Unterbrich die Zeichenkette und nutze den Vereinigungs-Operator ".":
Alles andere ist unsauber und überaus hässlicher Code.PHP-Code:"INSERT INTO `tblxyz`
(`Adresse`, `Email`)
VALUES ('" . $data['Adresse'] . "', '" . $data['formData'][0] . "')"
Grüße BNEine Lösung hätte ich schon, aber sie passt nicht zum Problem.
-
Weils mich intressiert:
Du unterbrichst die Zeichenkette mit dem doppelten Anführungszeichen " mitten in der SQL-Anweissung? Und das geht? Ich hatte gedacht das wirft nen Parse-Syntaxerror?
Ich weiss es wirklich nich genau daher meine naive Frage
Übers hässlich liesse sich streiten sind doch nur 2 Klammern
oder?
mfg Joe.
-
Hi
Das ist ganz normale Stringverkettung/Konkatenation/wie auch immer.
So wie man in C++, Java, C# etc.
statt
"Hallo Welt"
auch
"Hallo " + "Welt"
schreiben kann...
in PHP ist es eben der .
"Hallo " . "Welt"
vermutlich um es von der math. Addition abzugrenzen.
In den anderen genannten Sprachen ist es ja eindeutiger,
was eine Zahl und was ein String ist.
Warum sollte das dann einen Error machen?
Ist komplett unabhängig von Sql-String/Normalstring.
Die DB bekommt erst den fertig zusammengehängten String zu sehen.
GrußNetiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Bin da ganz anderer Meinung. Die viele " und Punkte verwirren mehr. Die Schreibweise mit {} (Complex (curly) syntax) ist mMn am Übersichtlichsten
Wenn du sogar mit eclipse arbeitest, funktioniert auch das Highlighting richtig...PHP-Code:"INSERT INTO `tblxyz`
(`Adresse`, `Email`)
VALUES ('{$data['Adresse']}', '{$data['formData'][0]}')"
Das hat den weiteren Vorteil dass es auch mit der Heredoc Schreibweise funktioniert. Grad bei komplexeren SQLS sehr angenehm, weil man das SQL sauber formatiert und ohne Unterbrüche schreiben kann. Es ist dann wirklich gut lesbar. (Da drin geht auch ' und " ohne escapen *g*)
PHP-Code:$sql = <<<SQL
INSERT INTO
`tblxyz`
(`Adresse`,
`Email`)
VALUES
(
-- Mit ' um den String einzufassen
'{$data['Adresse']}',
-- oder mit " Es geht beides
"{$data['formData'][0]}"
)
SQL;
echo $sql;
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Also hab mir das mit den Klammern auch so angewöhnt und finde die Stringverkettung mit den Punkten auch etwas verwirrrend. Allerdings ist das wahrscheinlich Geschmackssache

@sheel
Keine Ahnung wie ich drauf komme. Ich war wohl der irrigen Annahme das dies so wäre. Das kommt sicher aus meinen Anfängen mit SQL wo ich manchmal ewig nach syntaktischen Fehlern suchte. Gut zu wissen das es nicht so ist.Warum sollte das dann einen Error machen?
Ähnliche Themen
-
MYSQL 4.0 insert into in 2 Tab
Von coastbike im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 11.06.09, 18:28 -
mysql insert
Von toadkopf im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 05.06.07, 08:59 -
INSERT INTO (MySql)
Von Robert Steichele im Forum PHPAntworten: 8Letzter Beitrag: 19.01.05, 16:00 -
INSERT INTO (MySQL)
Von uwee im Forum PHPAntworten: 24Letzter Beitrag: 07.01.05, 14:47 -
\ n, insert, mysql
Von ohio im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 15.04.03, 10:44





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren