gpt4 book ai didi

php - 为什么 pg_query_params 将 boolean 值读取为字符串?

转载 作者:行者123 更新时间:2023-11-29 12:19:39 24 4
gpt4 key购买 nike

我在 PostgreSQL 表中有一个 boolean 列。在 pgAdmin III 中, TableView 显示列的“TRUE”和“FALSE”。当我执行 SQL“select *”时,另一个窗口显示“t”和“f”。这是一些配置问题吗?它不应该也显示“TRUE”和“FALSE”吗?

然后我们来到PHP。我有以下代码来处理这个 boolean 值(实际上我在做一些不同的事情,但在这里进行了简化):

$q = "select * from tax where id = $1";
$res = pg_query_params($conn,$q,[$id]);
if ($res) {
$row = pg_fetch_array($res,NULL,PGSQL_ASSOC);
$valido = $row['valido'];
echo $valido; // prints 'f' (== 'FALSE' on database)
if ($valido) {
echo 'valid'; // gets here
} else {
echo 'invalid';
}
}

数据库显示“FALSE”,php 读取“f”并将其视为“TRUE”。这是一些错误的配置,还是 php 总是读取一个 boolean 值作为文本解释为与原始值相反?

最佳答案

让我们面对现实:

  • PDO 或 pgsql 库返回的数据总是字符串。
  • boolean 值的 Postgresql 表示是字符串“t”和“f”。

这是由 PHP 文档在不同获取函数的“返回值”中指定的。 herehere .

如果您希望将这些结果转换为 PHP 等效类型,则必须设置 a converter system .

关于php - 为什么 pg_query_params 将 boolean 值读取为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33348180/

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