sqlite_fetch_column_types

(PHP 5)

sqlite_fetch_column_types

(no version information, might be only in CVS)

SQLiteDatabase->fetchColumnTypes --  Return an array of column types from a particular table

说明

array sqlite_fetch_column_types ( string table_name, resource dbhandle [, int result_type] )

Object oriented style (method):

class SQLiteDatabase {

array fetchColumnTypes ( string table_name [, int result_type] )

}

sqlite_fetch_column_types() returns an array of column data types from the specified table_name table.

参数

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. Using SQLITE_ASSOC will return only associative indices (named fields) while SQLITE_NUM will return only numerical indices (ordinal field numbers). SQLITE_BOTH will return both associative and numerical indices. SQLITE_ASSOC is the default for this function.

返回值

Returns an array of column data types; FALSE on error.

SQLITE_ASSOCSQLITE_BOTH 返回的列名会根据 sqlite.assoc_case 配置选项的值来决定大小写。

更新日志

版本说明
5.1.0Added result_type

范例

例子 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";
}
?>

例子 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";
}
?>

上例将输出:

Column: bar  Type: VARCHAR
Column: arf  Type: TEXT


add a note add a note User Contributed Notes
enthusiast
07-Mar-2005 12:19
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.
10-Jan-2005 07:01
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);
hugo_pl at users dot sourceforge dot net
18-Aug-2004 12:55
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