sqlite_fetch_column_types
SQLiteDatabase::fetchColumnTypes
(PHP 5 < 5.4.0)
sqlite_fetch_column_types -- SQLiteDatabase::fetchColumnTypes — Возвращает массив, содержащий информацию о типах полей в таблице
Описание
$table_name
, resource $dbhandle
[, int $result_type
= SQLITE_ASSOC
] )Объектно-ориентированный стиль (метод):
$table_name
[, int $result_type
= SQLITE_ASSOC
] )
sqlite_fetch_column_types() возвращает массив,
содержащий информацию о типах полей в указанной таблице
table_name
.
Список параметров
-
table_name
-
Название опрашиваемой таблицы.
-
dbhandle
-
Ресурс базы данных SQLite, полученный из функции sqlite_open() при использовании процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.
-
result_type
-
Необязательный параметр
result_type
принимает константу в качестве значения и определяет способ индексации возвращаемого массива. Использование константыSQLITE_ASSOC
вернет только ассоциативные индексы (именованные поля), тогда как использованиеSQLITE_NUM
вернет только числовые индексы (порядковые номера полей). По умолчанию используетсяSQLITE_ASSOC
.
Возвращаемые значения
Возвращает массив с типами полей, или FALSE
в случае ошибки.
Имена столбцов, возвращаемые
SQLITE_ASSOC
и SQLITE_BOTH
, будут
приведены к нужному регистру согласно значению конфигурационной опции
sqlite.assoc_case.
Список изменений
Версия | Описание |
---|---|
5.1.0 | Добавлен параметр result_type |
Примеры
Пример #1 Процедурный стиль
<?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 Тип: $type\n";
}
?>
Пример #2 Объектно-ориентированный стиль
<?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 Тип: $type\n";
}
?>
Результат выполнения данного примера:
Поле: bar Тип: VARCHAR Поле: arf Тип: 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.