我正在使用Postgres 9.4数据库并将PHP作为我的前端。
我可能会运行的一般查询如下所示:
PHP:
$query = "select * from some_table";
pg_prepare($connection,"some_query",$query);
$result = pg_execute($connection,"some_query",array());
while ($row = pg_fetch_array($result,null,PGSQL_ASSOC)) {
echo $row['some_field'];
echo $row['some_field_1'];
echo $row['some_field_2'];
}
我遇到了一个需要知道吐出的列的数据类型的前端 - 特别是我需要知道echo'd数据库字段何时是timestamp
列。
显然我可以告诉integers
和string
,但是时间戳有点不同。
我想我可以看到strtotime()
是否返回false,但这对我来说似乎有点脏。
所以我的问题是:
是否有PHP内置函数可以返回数据库行的多维数组,不仅包含$key=>$value
对,还包含datatype
?
对此有任何帮助将不胜感激 - 谢谢!
答案 0 :(得分:1)
您可以从information_schema.columns
进行查询,并像其他任何查询一样进行提取:
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name='some_table'
或在您的查询后使用pg_field_type():
$type = pg_field_type($result, 0);
但是你需要知道结果中列的位置,所以你应该(最好的做法)列出列。对于上述情况,使用0
会在下面的查询中提供col1
的类型::
SELECT col1, col2, col3 FROM some_table