(PHP 5)
sqlite_fetch_column_types -- SQLiteDatabase->fetchColumnTypes — Liefert ein Array mit den Spaltentypen einer bestimmten Tabelle
Objektorientierter Stil (Methode):
sqlite_fetch_column_types() liefert ein Array mit den Datentypen aller Spalten in der angegebenen Tabelle table_name.
Der abzufragende Tabellenname.
Die Ressource der SQLite-Datenbank, die bei prozeduraler Benutzung von sqlite_open() zurückgegeben wurden. Der Parameter wird bei der objektorientierten Notation nicht benötigt.
Der optionale Parameter result_type akzeptiert eine Konstante und bestimmt, wie das Rückgabearray indiziert wird. Mit SQLITE_ASSOC werden nur assoziative Indices (Namensfelder) und mit SQLITE_NUM werden nur numerische Indices (geordnete Feldnummern) gesetzt. SQLITE_BOTH liefert sowohl assoziative als auch numerische Indices. SQLITE_ASSOC ist Standard.
Liefert ein Array der Datentypen aller Spalten oder FALSE im Fehlerfall.
Die Groß- und Kleinschreibung der Spaltennamen, die von SQLITE_ASSOC und SQLITE_BOTH zurückgegeben werden, wird entsprechend der Konfigurationsdirektive sqlite.assoc_case geändert.
Version | Beschreibung |
---|---|
5.1.0 | result_type hinzugefügt |
Beispiel #1 Prozedurales Beispiel
<?php
$db = sqlite_open('mysqlitedb');
sqlite_query($db, 'CREATE TABLE foo (bar varchar(10), arf text)');
$cols = sqlite_fetch_column_types('foo', $db, SQLITE_ASSOC);
foreach ($cols as $column => $type) {
echo "Spalte: $column Typ: $type";
}
?>
Beispiel #2 Objektorientiertes Beispiel
<?php
$db = new SQLiteDatabase('mysqlitedb');
$db->query('CREATE TABLE foo (bar varchar(10), arf text)');
$cols = $db->fetchColumnTypes('foo', SQLITE_ASSOC);
foreach ($cols as $column => $type) {
echo "Spalte: $column Typ: $type";
}
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Spalte: bar Typ: VARCHAR Spalte: arf Typ: TEXT
If I (OO version) try to add the contant SQLITE_ASSOC, (exactly as listed in the above example) it generates the following error:
SQLiteDatabase::fetchColumnTypes() expects exactly 1 parameter, 2 given in C:\....
If I remove it completely, it returns the associative array I expected.
The problem with the permanently locked database file when using this function still seems to exist in PHP 5.0.3 (tested on win32).
However, you can get all the information you need about the fields of a table by using this query:
PRAGMA table_info(name_of_your_table);
This function, and the OO version, is bugged in PHP <= 5.0.1, locking the database until you restart the webserver.
http://bugs.php.net/bug.php?id=29476