Php / json_encode NULL问题

时间:2014-12-03 11:06:45

标签: php sql-server json

早上好,

我已经阅读过其他有类似问题的帖子,但没有解决问题,但请记住,我是PHP和Json世界的新手。但我试图将mssql查询转换为json格式,以便稍后我可以通过谷歌的可视化API传递它。查询和编码似乎正在工作,但编码返回NULL。

我检查了正常的问题,确保它的utf8编码,并且我使用了具有编码的PHP版本(使用php 5.3.19)。

任何人都可以帮助我使编码工作。

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);
?>

当我在服务器上运行此代码时,它会返回:

已建立连接。

[空]

有没有人有任何关于让它发挥作用的想法?

由于

克里斯

2 个答案:

答案 0 :(得分:2)

我解决这个问题的方法是:

$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);

}

答案 1 :(得分: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);

你已经通过了$ result,这是错误的。 $ row包含结果。