Mssql结果json_encode没有返回任何php pdo

时间:2017-07-31 07:03:25

标签: php sql-server pdo special-characters

> User.limit(6).offset(5).to_sql
#⇒ "SELECT  `users`.* FROM `users`  LIMIT 6 OFFSET 5"
> User.offset(5).limit(6).to_sql
#⇒ "SELECT  `users`.* FROM `users`  LIMIT 6 OFFSET 5"

php中的上述数组是Array ( [0] => Array ( [acctcode] => 631 [description] => Blood Transfussion Set, Blood Transfusion Set- ADULT [pchrgqty] => 1.00 [pchrgup] => 17.00 [pcchrgamt] => 17.00 [patlast] => GUADA�A [patfirst] => FRITZIE ELINE [patmiddle] => DAYTEC [patsuffix] => ) ) 的结果,现在这个数组将被json_encoded编码如下:

print_r($result);

我正在对此进行编码,因为它是针对ajax请求的。现在在回声部分它没有返回任何东西。我不知道为什么会这样,但我的猜测是因为 echo json_encode($result, JSON_UNESCAPED_UNICODE); 中的“Ñ”,显示为[patlast] => GUADA�A。我在的选择中得到了这个结果集。

  

如何在MSSQL中处理此结果集并能够返回正确的数据。

1 个答案:

答案 0 :(得分:1)

我在here

找到了我项目的最佳解决方案

使用以下代码:

// Create an empty array for the encoded resultset

$rows = array();

// Loop over the db resultset and put encoded values into $rows

while($row = mysql_fetch_assoc($result)) {
  $rows[] = array_map('utf8_encode', $row);
}

// Output $rows

echo json_encode($rows);

答案是我的用户 Kemo