0
我的PgSQL適配器有問題。我使用本地驅動程序,並且方法pg_fetch_ *僅返回字符串,即使列類型是整數或布爾值。帶有錯誤返回類型的PHP pg_fetch_ *
對於整數,不是一個大問題,它只是一個簡單的演員。
真正的問題是布爾值,因爲它返回TRUE的字符串't'和FALSE的'f'。
好,簡單的解決方法是做一個驗證這每一次我有布爾字段,但它不是最聰明的一個...
一個特殊的情況是,我希望遷移在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' 是一個整數, '狀態' 是一個布爾值。
「原生驅動程序」。你的意思是內置於PHP的驅動程序,http://www.php.net/manual/en/book.pgsql.php?如果是這樣:你使用什麼PHP版本和哪個PostgreSQL版本? –
另請參見:請顯示您的代碼。運行查詢的PHP和SQL,以及顯示結果是字符串的PHP。此外,當你說出「我在Google上發現了某些東西」時...... *鏈接到它*所以我們知道你在說什麼。 –
對不起...我說我沒有在Google上找到任何東西,只是對PHP手冊發表評論: http://br.php.net/manual/it/function.pg-fetch-assoc.php#108957 –