Hallo,
mehrere Probleme:
a) möchte ALTER TABLE einmalig ausführen zum Umbenennen einer Table und finde nicht die Syntax. Hier (sqlite.org) finde ich leider nicht alle Hilfe. Es ist eher ein Nachschlagewerk, wenn man die Sprache beherrscht. Es geht um database-name (siehe Link). Was ist das? Ich möchte den Befehl einmalig im SQLite Database Browser 2.0b1 eingeben. Nicht in php (wo ich die Datenbanken normalerweise verarbeite).
b) wofür steht 'stmt' in alter-table-stmt.
c) Wenn ich, um Injektionenn zu verhindern, die php Funktion escapeString verwende, muss ich das dann auf jedes Glied einzeln anwenden? Beispiel: meine GetRecord() - Funktion kriegt die Parameter: $table, $index, $item und baut dann sowas wie
$query = "SELECT * FROM $table WHERE $index='$item';
Ich habe jetzt die escapeSring davor gesetzt:
$table = $this->escapeString($table);
$index = $this->escapeString($index);
$item = $this->escapeString($item);
Denn wenn ich es auf den fertigen $query anwende, kriege ich Probleme, weil da ja von Hause aus schon ' drin sind, die da auch sein sollen. Das Problem ist, dass das gute php.net für SQLite3::escapeString im Kommentar sagt:
Calling this function on user input BEFORE constructing the query string can lead to interesting results. For instance, it truncates e-mail addresses in an un-usable manor.
Das finde ich widersprüchlich und verwirrt mich, weil ich noch SQLite-Anfänger bin.
d) Generell frage ich mich auch, wo ich bei der SELECT-query Hochkommas nutzen soll, wo darf, wo muss. Und ob ich mich ausreichend schütze.
Kennt jemand ein Tutorium für Sqlite3, welches fortgeschrittene Anwendungsfälle zeigt (unter Benutzung mit php). Ich finde nur Beispiele, wo die Datenbank geöffnet wird, etc. Nicht aber, wo die Sicherheit behandelt wird. www.sqlite.org wie gesagt, ist eher ein Nachschlagewerk, das sicher allumfassend ist, dass mir aber den Einstieg nicht ermöglicht. Gerne auch Englisch...
Grüße und Dank...