sqlite_fetch_column_types
SQLiteDatabase::fetchColumnTypes
(PHP 5 < 5.4.0)
sqlite_fetch_column_types -- SQLiteDatabase::fetchColumnTypes — Return an array of column types from a particular table
Description
$table_name
, resource $dbhandle
[, int $result_type
= SQLITE_ASSOC
] )Object oriented style (method):
$table_name
[, int $result_type
= SQLITE_ASSOC
] )
sqlite_fetch_column_types() returns an array of column
data types from the specified table_name
table.
Parameters
-
table_name
-
The table name to query.
-
dbhandle
-
The SQLite Database resource; returned from sqlite_open() when used procedurally. This parameter is not required when using the object-oriented method.
-
result_type
-
The optional
result_type
parameter accepts a constant and determines how the returned array will be indexed. UsingSQLITE_ASSOC
will return only associative indices (named fields) whileSQLITE_NUM
will return only numerical indices (ordinal field numbers).SQLITE_ASSOC
is the default for this function.
Return Values
Returns an array of column data types; FALSE
on error.
The column names returned by
SQLITE_ASSOC
and SQLITE_BOTH
will be
case-folded according to the value of the
sqlite.assoc_case configuration
option.
Changelog
Version | Description |
---|---|
5.1.0 | Added result_type |
Examples
Example #1 Procedural example
<?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 "Column: $column Type: $type\n";
}
?>
Example #2 Object-oriented example
<?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 "Column: $column Type: $type\n";
}
?>
The above example will output:
Column: bar Type: VARCHAR Column: arf Type: TEXT
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с базами данных
- Расширения для работы с базами данных отдельных производителей
- SQLite
- sqlite_array_query
- sqlite_busy_timeout
- sqlite_changes
- sqlite_close
- sqlite_column
- sqlite_create_aggregate
- sqlite_create_function
- sqlite_current
- sqlite_error_string
- sqlite_escape_string
- sqlite_exec
- sqlite_factory
- sqlite_fetch_all
- sqlite_fetch_array
- sqlite_fetch_column_types
- sqlite_fetch_object
- sqlite_fetch_single
- sqlite_fetch_string
- sqlite_field_name
- sqlite_has_more
- sqlite_has_prev
- sqlite_key
- sqlite_last_error
- sqlite_last_insert_rowid
- sqlite_libencoding
- sqlite_libversion
- sqlite_next
- sqlite_num_fields
- sqlite_num_rows
- sqlite_open
- sqlite_popen
- sqlite_prev
- sqlite_query
- sqlite_rewind
- sqlite_seek
- sqlite_single_query
- sqlite_udf_decode_binary
- sqlite_udf_encode_binary
- sqlite_unbuffered_query
- sqlite_valid
Коментарии
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
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);
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.