php - 无论如何要告诉 postgres 数组中的数据类型?

标签 php arrays postgresql sqldatatypes

我使用的是 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/

相关文章:

java - 重写 findResource

c++ - 删除一个 Char[]

javascript - 将数组与 dom 元素进行比较,检查是否有相同的 ID

python - 将 CitusDB 与 SQL-alchemy 结合使用

database - 为什么 EXPLAIN 结果中的实际时间在 PostgreSQL 中的每次执行都不同?

php - 防止dql进行实体连接

javascript - 选项 onsubmit 和alert 不能一起工作

php - PHP 中的 MP3 和 OGG 标签

php - 获取 ID 连接到逗号分隔列表的所有匹配记录

database - Postgresql - 计算数据库大小