SQLite CSV
Eine andere Tabelle in SQLite einlesen ist einfach, vorausgesetzt ich habe die Tabelle in einem Zwischenformat, in einer csv Datei abgespeichert, welches die Feldwerte (Kolonnen) durch ein eindeutiges Zeichen (dem Namen nach ein Komma) trennt.
Comma separated values
Meine sqlite.csv Datei ist eine reine Textdatei (7-bit ASCII), in der ein Tabelleninhalt steht.
Die Trennung der Kolonnen geschiet in diesem Beispiel jeweils mit einem ";" (Semikolon),
es muss also nicht ein Komma sein, es wäre auch eine "|" (Pipe) möglich
- das Zeichen darf im Zellinhalt nicht vorkommen.
Ebenso zu vermeiden ist ein "'" im Text, es würde im sqlite_query einen Syntaxerror erzeugen:
'Warning: sqlite_query() [function.sqlite-query]: near "n": syntax error ...'
1;Da komm ich her:;Aus dem Weltenmeer. 2;Da geh ich hin:;Als Schmetterling. 3;Da wünsch ich mir:;Ein Lied von dir. 4;Da blieb mir noch:;Ein Sommerloch.
csv Tabelle einlesen
Die Datensätze aus der csv-Datei fügt es nur der Tabelle hinzu, wenn die Datenbank 'SQLite/db_test.db' mit der Tabelle 'tb_test' vorhanden ist. Falls nicht, wird zwar die Datenbank erzeugt aber nicht die Tabelle (Tabelle erstellen).
sqlite_open
sqlite_query
<?php
// Einlesen
$db = sqlite_open("SQLite/db_test.db", 0666, $error)
or die("Fehler beim Öffnen der Datenbank: $error");
$csv_handle = fopen("sqlite.csv","r");
while ( ($data = fgetcsv ($csv_handle, 1000, ";")) !== FALSE ) {
$sql = "INSERT INTO tb_test VALUES(NULL,'$data[1]', '$data[2]')";
sqlite_query($db,$sql);
}
fclose ($csv_handle);
sqlite_close($db);
?>
SQLite Tabelle ausgeben
Die in SQLlite eingelesene csv-Datei als HTML-Tabelle ausgegeben: