Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite v2.8(PHP5)中列的元数据_Php_Sqlite_Metadata_Sqlite2 - Fatal编程技术网

SQLite v2.8(PHP5)中列的元数据

SQLite v2.8(PHP5)中列的元数据,php,sqlite,metadata,sqlite2,Php,Sqlite,Metadata,Sqlite2,如何使用PHP5(比如mysql的mysql\u fetch\u字段)为sqlitev2.8表中的每一列获取元数据/约束(特别是主键和“允许空值”) sqlite\u fetch\u column\u types(OO:$db->fetchColumnTypes)只获取列名和数据类型: SQLITE_MASTER具有该信息,但不作为变量。示例: 从SQLITE_MASTER中选择名称 。。。SQLITE_MASTER仅输出具有此结构的数组(v2.8): (什么是“rootpage”?)当我在Z

如何使用PHP5(比如mysql的mysql\u fetch\u字段)为sqlitev2.8表中的每一列获取元数据/约束(特别是主键和“允许空值”)

sqlite\u fetch\u column\u types
(OO:
$db->fetchColumnTypes
)只获取列名和数据类型:

SQLITE_MASTER具有该信息,但不作为变量。示例:
从SQLITE_MASTER中选择名称

。。。SQLITE_MASTER仅输出具有此结构的数组(v2.8):


(什么是“rootpage”?)

当我在Zend Framework上工作时,我必须这样做才能为SQLite实现一个
descripbetable()
方法。SQLite无法获得关于元数据的非常详细的信息

我所做的是运行以下SQLite查询:

PRAGMA tableinfo( <tablename> );
PRAGMA tableinfo();
请参阅标题“Pragmas以查询数据库架构”下的

此查询返回的结果集包含以下列:

  • 列位置(整数)
  • 列名(字符串)
  • 数据类型(字符串)
  • 可为空(0)与不为空(1)
  • 默认值(字符串)
  • 主键(1)
您可以通过下载Zend Framework并查看类
Zend_Db_Adapter_Pdo_Sqlite
,方法
descripbetable()
来查看PHP代码。您还可以通过framework.zend.com上的代码库浏览器在线查看源代码(尽管它通常不起作用)


FWIW,这不像
mysql\u fetch\u field()
。该方法返回关于结果集的元数据,这可能与关于表的元数据不同。

适用于我的示例代码片段。。。以说明比尔·卡温的解决方案(这不是试图回答我自己的问题!)

PRAGMA tableinfo( <tablename> );
$db = new SQLiteDatabase("db.sqlite2");  
$rs = $db->arrayQuery("PRAGMA table_info( 'my_table' );");
print_r($rs);