Account gelöscht
Ort: -
Alter: -
|
Verfasst Mo 18.10.2004 16:29
Titel
|
|
|
Es ist halt so: Bei Strings musst du eben darauf achten, dass Anfüs aus den genannten Gründen nur einmal verwendet werden. Bsp.:
Code: |
$string="Ich bin eine Zeichenkette, die hat \" und ein '."; |
Ausgabe:
Code: |
Ich bin eine Zeichenkette, die hat ein " und ein '. |
Dann gibt es noch den kleinen, aber feinen Unterschied zwischen " und '. Variablen, die zwischen doppelten Anfüs stehen, werden geparsed und ausgegeben:
Code: |
$variable="Hanswurst";
$string="Ich bin eine Variable: $variable"; |
ergibt: Code: |
Ich bin eine Variable: Hanswurst.
|
Die andere Variante:
Code: |
$variable="Hanswurst";
$string='Ich bin eine Variable: $variable'; |
Man sieht: Variablen zwischen einfachen Anfüs werden NICHT geparsed.
ergibt: Code: |
Ich bin eine Variable: $variable.
|
Ich persönlich empfinde das erste Beispiel als unsauber, da hier eine
Fehlerquelle steckt. Richtiger ist:
Code: |
$variable="Hanswurst";
$string="Ich bin eine Variable: ".$variable; |
ergibt: Code: |
Ich bin eine Variable: Hanswurst.
|
Willst du die andere Ausgabe herbeiführen, escapest du Zeichen,
die von PHP als Sonderzeichen angesehen werden, indem du einen
Backslash voranstellst. Dies bewirkt, dass PHP diese Zeichen als "normalen"
Text ansieht und nicht parsed:
Code: |
$variable="Hanswurst";
$string="Ich bin eine Variable: \$variable"; |
ergibt ebenfalls: Code: |
Ich bin eine Variable: $variable.
|
SQL-Strings sind wieder eine Klasse für sich. Gehe einerseits davon aus, dass SQL selbst Strings, also Zeichenketten
zwingend in Anfüs (doppelt od. einfach) oder Backticks eingeschlossen haben muss. Gleichzeitig fordert eine SQL-Anweisung auch noch ein abschließendes Semikolon, streng genommen.
Willst du also eine SQL-Anweisung in PHP einbetten, ists am besten, du kreierst ERST den SQL-String, und schaust DANN, wie du ihn als String von PHP "zusammenbauen" lässt. Gehen wir vom einfachsten Fall aus:
Code: |
UPDATE tabelle SET spalte='Wert';
|
ist unsere SQL-Anweisung.
Ein Schritt weiter, du willst anstelle 'Wert' eine Variable einfügen. Du musst also dafür sorgen, dass im SQL-String, bevor er an die Datenbank übergeben wird, der Variablennamen durch den tatsächlichen Wert ersetzt wird, die einfachen Anfüs für die Datenbank aber erhalten bleiben:
Code: |
$sql="UPDATE tabelle SET spalte=$variable;";
|
wäre also FALSCH, denn nach dem parsen bliebe ein String übrig, der so aussähe.
Code: |
UPDATE tabelle SET spalte=wert;
|
hier fehlen die Anfüs.
Richtig muss es lauten:
Code: | $sql="UPDATE tabelle SET spalte='$variable';"; |
oder noch besser:
Code: | $sql="UPDATE tabelle SET spalte='".$variable."';"; |
Verstanden?
Zuletzt bearbeitet von am Mo 18.10.2004 16:31, insgesamt 2-mal bearbeitet
|
|