PHP / SQLSRV / json_encode.Требуется помощь для кодирования массива записей JSON - PullRequest
0 голосов
/ 22 сентября 2018

Я получаю данные из базы данных SQL Server, используя следующий код:

$sql = "EXEC usp_APIGetJob @Reference='BAX94319',@OrderRef='ORD00156',@JobRef='012363';";
$RS_Result01 = sqlsrv_query($conn,$sql);
$result = array();
do {
    while ($row = sqlsrv_fetch_array($RS_Result01,SQLSRV_FETCH_ASSOC)) {
        $result[] = $row;
    }
}
while (sqlsrv_next_result($RS_Result01));

print_r($result);

В print_r выводится следующий массив:

Array ( [0] => Array ( [SiteId] => 4894 [ClientId] => 2334 [OrderRef] => ORD00156 [JobRef] => 012363 [MovementRef] => 200781 [WeighBridgeRef] => 200801 [WeighBridgeWeight] => 4.560 [PercentFill] => 100 [BreakdownPercentage] => 25 [BreakdownDescription] => Cardboard (packaging) [BreakdownEWC] => 15-01-01 ) )

Из массива видно, чтоСтруктура массива может отображать несколько строк.В интересах простоты я возвратил только одну строку ([0]) для этого вопроса.

Я хотел бы отформатировать этот вывод в JSON, используя json_encode (), но я изо всех сил пытаюсь найти правильное утверждение /синтаксис для создания формата JSON.

Каждый раз, когда я пытаюсь отобразить json_encode (), он ничего не производит (пустой вывод).

Любая помощь с правильным форматированием json_encode () для кодирования этого массивавместе с кратким обзором того, что стоит за ним (чтобы я мог его изучить), будет принята с благодарностью.

Версия SQL Server 2012, поэтому использование новой функции JSON OUTPUT в SQL Server 2016/2017 не являетсяопция.Я должен кодировать в PHP.

С уважением

1 Ответ

0 голосов
/ 22 сентября 2018

С большим количеством указателей от Барта ответ состоял в том, что для работы json_encode требуется кодировка UTF-8.Простой ответ на это заключался в том, чтобы включить модификацию CharacterSet в строку соединения.

$connectionInfo = array( "UID"=>$uid,"PWD"=>$pwd,"Database"=>$database,"CharacterSet"=> "UTF-8");

Это делает вывод UTF-8 и позволяет json_encode () работать как красота!

Еще раз, спасибо, Барт, за то, что указал мне правильное направление отладки, и за всю вашу помощь.Я надеюсь, что это решение пригодится вам и в будущем.

Я чувствую, что вы заслуживаете похвалы за это.

:)

...