2011-05-02 77 views
0

我使用數據表。我將它與Postgresql服務器結合使用。 我想從Postgresql服務器獲取數據。 我使用以下腳本:http://datatables.net/development/server-side/php_postgresDatatables - Json輸出 - PostgreSQL - 返回null

腳本工作並創建json文件。問題是json文件上的值爲空。

這是它返回:

{"sEcho":1, "iTotalRecords":4, "iTotalDisplayRecords":4, "aaData":[[null,null,null], [null,null,null], [null,null,null], [null,null,null]]} 

也是我不明白的是變量$sIndexColumn(索引列(用於快速和準確的表基數))。我已將其價值設置爲表格的第一列,例如$sIndexColumn = "'Name'";。這是正確的用法嗎?

在此先感謝。

+0

感謝'mu太短',因爲我的問題的格式不正確;-)寫這篇文章時我太快了,而且憤怒:P – 2011-05-02 17:10:31

回答

1

文檔說:

使用的代碼在自己的服務器上,只需更改$ aColumns陣列列出你希望從你的數據庫中的列,設置$ sIndexColumn到一列索引(爲速度),$ s表爲表名,最後填寫你的數據庫連接參數爲$ gaSql

強調我的。所以,$sIndexColumn應該是列名稱,而不是引用的字符串。試試這個:

$sIndexColumn = "Name"; 

單引號用於PostgreSQL(以及大多數其他類型的SQL)中的字符串。

我猜,你與你的$aColumns由相同的報價問題,即你做了這樣的事情:

$aColumns = array("'One'", "'Two'", "'Three'"); 

當你應該做這樣的事情:

$aColumns = array("One", "Two", "Three"); 

你'列出三列,但這些列中沒有任何內容,列值來自這裏:

$row[] = $aRow[ $aColumns[$i] ]; 

所以,如果$aColumns是錯的,那麼你會得到你看到的null

+0

嗨。我沒有誤報。 Postgresql不瞭解大寫的表名,你需要引用它們。所以這裏是我的數組變量。 \t $ aColumns = array(''Name'',''Surname'','「Telephone」'); 如果我這樣離開,它會返回我告訴你的結果。如果我讓它$ aColumns =數組(「名稱」,「姓氏」,「電話」); 然後它搜索字段「名稱」而不是字段「名稱」並返回錯誤。 – 2011-05-02 17:31:00

+0

或者我錯過了一些東西...... – 2011-05-02 17:33:44

+0

「'Name」''方法看起來不錯,因爲雙引號會引用列名稱,但也許PHP會變得困惑。你可以看看PHP文件末尾的'while循環中'$ aRow'中的內容嗎? – 2011-05-02 17:46:50