Hello,
*ui*
Das muss eine lange Antwort werden.
Zu Beachten sind dabei
- die Notation von Bezeichnern in MySQL
- die Notation von Zahlenwerten in MySQL
- die Notation von Stringwerten in MySQL
- das Escapen von Zahlen- und Stringwerten in MySQL und PHP
- das Ersetzen von Variablen in Strings bei PHP
- das Zusammenbauen von Query-Strings in PHP für MySQL und die Beachtung der Spaltentypen
in Bezug auf das Escapen, Quotieren, usw.
Mir ist aufgefallen, dass in div. Foren, Manuals oder Tutorials SQL-Statments in Bezug auf Hochkommas immer wieder eine andere Schreibweise verwenden. Funktionieren tun jedoch alle. Ich Frage mich nun wie es korrekt ist.
z.B.
INSERT INTO tabelle1 (wert1, wert2) VALUES (1, 2)
so geschrieben vollkommen OK, weil sowohl die Bezeichner nicht reserviert sind, als auch die Werte numerische Werte darstellen, WENN wert1 und wert2 auch numerische Spaltentypen darstellen.
INSERT INTO tabelle1 (
wert1
,wert2
) VALUES (1, 2)
Immer noch OK, obwohl die Kennzeichnung der Bezeichner durch Backticks hier nicht notwendig ist, da sie keine reservierten Begriffe in MySQL darstellen. Es ist aber auch nicht schädlich, sie zu kennzeichnen. Restliches siehe voriges Statement
INSERT INTO tabelle1 (
wert1
,wert2
) VALUES ('1', '2')
Hier wäre davon auszugehen, dass die Spaltentypen von wert1 und wert2 auch Stringtypen sein dürften. Bei Stringwerten ('1', '2') ist es notwendig, diese in Quotierung zu setzen. Es ist allerdings auch bei numerischen Spaltentypen erlaubt, die Werte in Quotierung zu setzen, wenn nicht direkt im Querystring damit gerechnet werden soll.
Wer macht hier mal weiter?
Weiters wundert mich, dass im folgenden mysql_query die Variablen direkt im String stehen und das auch funktioniert.
z.B.
mysql_query("INSERT INTO tabelle1 (wert1
,wert2
) VALUES ('$value1', '$value2')")Ich hätte es eher so gemacht:
mysql_query("INSERT INTO tabelle1 (wert1
,wert2
) VALUES ('".$value1."', '".$value2."')")Bitte um Hilfe wie man es nun richtig macht. Ich will es mir nicht falsch angewöhnen.
Danke!
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg