Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : SQLite Functions : sqlite_fetch_column_types

sqlite_fetch_column_types

Return an array of column types from a particular table (PHP 5)
array sqlite_fetch_column_types ( string table_name, resource dbhandle [, int result_type] )

Object oriented style (method):

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.

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. 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.

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 2333. 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";
}
?>


Example 2334. 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";
}
?>

The above example will output:

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


Code Examples / Notes » sqlite_fetch_column_types

hugo_pl

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


10-jan-2005 11: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);


enthusiast

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.


Change Language


Follow Navioo On Twitter
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
eXTReMe Tracker