[AngularJS]从 SQL Server 检索数据并将其转化为 json 格式吗?

发布时间: 2016/5/16 1:03:28
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我使用的 PHP 5.6.0 并连接到我本地的 SQL 服务器。我能够检索数据,但它是以数组的形式。我想将它转换成 json 格式。

我得到了什么 ︰

(     
    [date] => 2013-02-05 16:02:02.000000
    [timezone_type] => 3
    [timezone] => America/New_York
)

我想要:

(
    "date" : "2013-02-05 16:02:02.000000",
    "timezone_type" : "3",
    "timezone" : "America/New_York"
)

这里是我的代码 ︰

$sql = "SELECT * FROM table";
$stmt = sqlsrv_query($conn, $sql);

$result = array(); 

do {
    while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
    $result[] = print_r($row); 
    }
} while (sqlsrv_next_result($stmt));


echo json_encode($result);


sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);

我的理解是 json_encode 应该转换我的数据,但这似乎并不是这样。

谢谢!

解决方法 1:

在您的代码中有两个错误吧第一个是

$result[] = print_r($row); 

你是执行一个函数,同时推动数组中的值。你应该在这里数组中推值。像

$result[] = $row;

第二人不,打印 JSON 变量后对它进行编码。所以您的代码将

$sql = "SELECT * FROM table";
$stmt = sqlsrv_query($conn, $sql);

$result = array(); 

do {
    while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
       $result[] = $row; 
    }
} while (sqlsrv_next_result($stmt));


sqlsrv_free_stmt($stmt);
sqlsrv_close($conn); //Close the connnectiokn first

echo json_encode($result); //You will get the encoded array variable
赞助商