Php / json_encode NULL issues



早上好,

我已经阅读了其他有类似问题的帖子,但没有任何方法可以解决问题,但请记住,我是 PHP 和 JSON 世界的新手。但是我正在尝试将mssql查询转换为json格式,以便以后可以通过Google的可视化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);
?>

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

连接已建立。

[空]

有没有人对让它工作有任何想法?

谢谢

克里斯

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

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

试试这个:

$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包含结果。

最新更新