gpt4 book ai didi

php - 如何从 php 或 postgresql 中的当前查询获取表名

转载 作者:行者123 更新时间:2023-11-30 00:48:17 25 4
gpt4 key购买 nike

是否可以使用pdo php或postgresql中的普通sql从当前查询中获取表名?

在 pdo php 中存在一个类似 PDOStatement::getColumnMeta 的函数,但是这个函数不能很好地工作,因为它在查询中返回别名的名称,当我使用像

这样的符号时
SELECT configuration.id AS other_name
FROM configuration.mytable AS other_table_name
INNER JOIN configuration.some_table AS other_some_table_name
ON other_table_name.id = other_some_table_name.id

它返回奇怪的值。我有兴趣获取没有别名的表的基本名称。有人知道更好的方法来获取实际查询的表名吗?

Elvis Ciotii 答案更新

这里是sql:

    SELECT        *
FROM configuration.applications
WHERE url=:url

这是结果

      Array
(
[pgsql:oid] => 23
[native_type] => int4
[name] => id
[len] => 4
[precision] => -1
[pdo_type] => 1
)

在文档 php.net 中,函数 PDOStatement::getColumnMeta() 返回一个关联数组,其中包含表示单个列元数据的以下值:

native_type、驱动程序:decl_type、标志、名称、表、长度、精度、pdo_type

我的结果标志和表键在哪里?

我需要这个值,因为我正在我的小框架中工作,我想在其中实现对类特殊 returnig 函数进行建模以及生成的执行查询。我在想如果我无法从 pdo 获取这个值,我就无法在正常查询中获取这个值。等等。显示表格或类似的东西。

最佳答案

$dbconn = pg_connect("host=localhost port=5432 dbname='dbname' user='username' password='password' ")
or die('Could not connect: ' . pg_last_error());
$query = "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_name";


$result = pg_query($dbconn,$query) or die('Query failed: ' . pg_last_error());

$tablesRes = pg_fetch_all($result);
$tableArray = array_column($tablesRes, 'table_name');
foreach ($tableArray as $tables){
//Do your logic here
}

关于php - 如何从 php 或 postgresql 中的当前查询获取表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21189700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com