我在PostgreSQL表中有一个布尔列。在pgAdmin III中,表视图显示列的“TRUE”和“FALSE”。当我执行SQL 'select *‘时,另一个窗口显示't’和'f‘。这是一些配置问题吗?它不也应该显示“真”和“假”吗?
然后我们来看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‘并将其视为'TRUE’。这是一些错误的配置,还是php总是将布尔值读取为与原始值相反的文本?
https://stackoverflow.com/questions/33348180
复制相似问题