2014-12-03 83 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