2014-12-03 75 views
0

早上好,PHP/json_encode NULL問題

我已經看過有類似問題的其他職位,但沒有什麼是解決問題,但請記住我是新來的PHP和JSON的世界。但我試圖將一個mssql查詢轉換成json格式,以便我可以稍後通過谷歌的可視化API傳遞。查詢和編碼似乎正在工作,但編碼返回NULL。

我檢查了確保它的utf8編碼的正常問題,並且我使用了具有編碼(使用php 5.3.19)的PHP版本。

任何人都可以幫助我使編碼工作。

PHP代碼:

<?php 
// connection details known to be working fine 

if($conn) { 
echo "Connection established.<br><br>"; 
}else{ 
echo "Connection could not be established.<br />"; 
die(print_r(sqlsrv_errors(), true)); 
} 

$query = "SELECT * FROM tblMetalPrice"; 
$result = sqlsrv_query($conn, $query); 
while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_NUMERIC)); 


$arr = array($result); 
$encodedarray = array_map(utf8_encode, $arr); 

echo json_encode($encodedarray); 

sqlsrv_close($conn); 
?> 

當我在服務器上運行此代碼它回來了:建立

連接。

[null]

有沒有人有任何想法得到這個工作?

感謝

克里斯

+0

檢查此鏈接在PHP DB連接:http://php.net/manual/en/mysqli.query.php – 2014-12-03 11:10:08

+0

你確定,你是獲取$ encodedarray中的數據? – 2014-12-03 11:11:28

回答

1

我解決的方式,這是:

$query = "SELECT * FROM tblMetalPrice"; 
$result = sqlsrv_query($conn, $query); 
while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_NUMERIC)) 

{ 

$encodedarray = array_map(utf8_encode, $row); 

echo json_encode($encodedarray); 

} 
0

試試這個:

$query = "SELECT * FROM tblMetalPrice"; 
$result = sqlsrv_query($conn, $query); 
while($row[] = sqlsrv_fetch_array($result, SQLSRV_FETCH_NUMERIC)); // Fetch and stor in array 


$arr = array($row); // make parent array 
$encodedarray = array_map(utf8_encode, $arr); 

echo json_encode($encodedarray); 

您已通過$結果是錯誤的。 $行包含結果。

+0

感謝您的答覆,它沒有100%的工作,但給了我答案。 – Kris 2014-12-03 11:28:12

+0

你現在得到的錯誤是什麼? – 2014-12-03 11:29:54

+0

它工作正常,現在看到我發佈的答案:)謝謝你指出我在正確的方向。 – Kris 2014-12-03 11:30:38