我在PostgreSQL表中有一个布尔列。在pgAdmin III中,表格视图显示' TRUE'并且' FALSE'为列。当我做一个SQL'选择*'时,那个其他窗口会显示' t'并且' f'。这是一些配置问题吗?它不应该也显示出真实的'和' FALSE'?
然后我们来PHP。我有以下代码来处理这个布尔值(实际上我做了不同的事情,但在这里简化了它):
$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'并将其视为“真实”。这是一些错误的配置,或者php总是读取一个布尔值作为解释为与原始值相反的文本?
答案 0 :(得分:1)
让我们面对现实:
这是由"返回值"中的PHP文档指定的。不同的获取功能。 here和here。
如果您希望将这些结果强制转换为PHP等效类型,则必须设置a converter system。