我使用的是 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 的数据库字段何时是 timestamp
列。
显然我可以分辨整数
和字符串
,但是时间戳有点不同。
我想我可以看看 strtotime()
是否返回 false,但这对我来说似乎有点脏。
所以我的问题是:
是否有一个 PHP 内置函数可以返回数据库行的多维数组,不仅包含 $key=>$value
对,还包含数据类型
?
如有任何帮助,我们将不胜感激 - 谢谢!
最佳答案
您可以从 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
关于php - 无论如何要告诉 postgres 数组中的数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31925343/