我的PgSQL适配器有问题。我正在使用本机驱动程序,方法pg_fetch_ *只返回字符串,即使列类型是整数或布尔值。
对于整数来说,这不是一个大问题,它只是一个简单的演员。
真正的问题在于布尔值,因为它返回字符串't'为TRUE,'f'为FALSE。
好的,简单的解决方案就是每次我有布尔字段时对此进行验证,但它不是最聪明的...
一个特定的案例是我想要迁移一个运行在MySQL上的庞大应用程序做PgSQL,这将是我必须改变的很多条件。
我试图在Google上找到一些东西,但是(我不知道我是否使用了错误的关键字组合)是UNsuccessfull。
示例代码:
$db = pg_connect("host=localhost dbname=**** user=**** password=**** port=5432") or die("Could not connect");
pg_set_error_verbosity(PGSQL_ERRORS_VERBOSE);
$sql = 'SELECT * FROM mesa';
$result = pg_query($db, $sql);
var_dump(pg_last_error($db));
$data = array();
while($row = pg_fetch_assoc($result)) {
$data[] = $row;
}
var_dump($data);
输出:
array (size=10)
0 =>
array (size=3)
'numero' => string '2' (length=1)
'max_pessoas' => string '8' (length=1)
'status' => string 't' (length=1)
1 =>
array (size=3)
'numero' => string '3' (length=1)
'max_pessoas' => string '8' (length=1)
'status' => string 't' (length=1)
继续前进,但'numero'是一个整数,'status'是一个布尔值。
答案 0 :(得分:0)