Hi,
$x = "INSERT INTO $tblname values('$id','$contxt','$tme')";
sqlite_query($db,$x);Das funktioniert ohne Probleme.
Nein. Das funktioniert nur zufällig (bis durch irgendwelche Aktionen auf der Datenbank wie z.B. drop column + add column die Reihenfolge der Spalten nicht mehr mit dem übereinstimmt, was Du hier vermutest.
Besser:
$x = "INSERT INTO $tblname (id, context, tme) VALUES ('$id','$contxt','$tme')";
also mit expliziter Angabe der Spalten, die Du füllen willst.
$x = "INSERT INTO $tblname values('$id','$contxt','$tme')";
$x = sqlite_escape_string($x);
Das ist Unsinn, es müssen die einzutragenden Werte einzeln behandelt werden, nicht die komplette Query.
Das leider nicht:
Warning: sqlite_query() [function.sqlite-query]: near "id10": syntax error in...
Kein Wunder, s.o.
$x = "INSERT INTO $tblname values("$id","$contxt","$tme")";
$x = sqlite_escape_string($x);
sqlite_query($db,$x);So widerum würde es gehen
Nur zufällig, weil Deine Werte zufällig kein kritisches Zeichen enthalten.
Die Frage ist also, warum darf ich keine einfachen Anführungszeichen benutzen, bzw. muss ich wirklich jedesmal Mal, beim Erzeugen eines Query-String, manuell das noch escapen, damit ich dann "sqlite_escape_string" nutzen kann?
Du mußt, wie bereits erwähnt, die Werte mit sqlite_escape_string behandeln, nicht die komplette Query.
cu,
Andreas
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.