PHP,PDO SQL server,从返回数据中删除前导的0

PHP,PDO SQL server,从返回数据中删除前导的0,php,sql-server,pdo,slim,Php,Sql Server,Pdo,Slim,我正在开发PHP+Slim框架。我必须将MySQL迁移到SQL Server。 SELECT语句的返回结果有问题。 这是我的示例数据 ╔════╦═══════╦════════════╦════════════╦═══════════════════════╗ ║ id ║item_id║ lat ║ lng ║ timestamp ║ ╠════╬═══════╬════════════╬════════════╬═════════════

我正在开发PHP+Slim框架。我必须将MySQL迁移到SQL Server。 SELECT语句的返回结果有问题。 这是我的示例数据

╔════╦═══════╦════════════╦════════════╦═══════════════════════╗
║ id ║item_id║    lat     ║     lng    ║       timestamp       ║
╠════╬═══════╬════════════╬════════════╬═══════════════════════╣
║  1 ║  1    ║51.42743450 ║-0.72776696 ║2017-07-05 09:54:49.000║
║  2 ║  1    ║51.59665507 ║-0.72777098 ║2017-07-05 11:54:49.000║
║  3 ║  2    ║51.59664690 ║-0.67272032 ║2016-08-10 10:11:49.000║
║  4 ║  2    ║51.59664874 ║-0.67270288 ║2016-08-10 11:05:49.000║
║  5 ║  2    ║51.59665167 ║-0.67271587 ║2016-08-10 10:08:49.000║
╚════╩═══════╩════════════╩════════════╩═══════════════════════╝
这是代码

public function test(Request  $request, Response  $response, $args)
{
  $query = 'SELECT item_id, lat, lng FROM mySchema.record WHERE item_id = 1';
  $sth = $this->db->prepare($query);
  $sth->execute();
  $rows = $sth->fetchAll();
  $data = array('data' => $rows);
  return $response->withJson($data);
}  
以前,在MySQL中,数据是这样正确返回的(示例)

但在使用SQL Server之后,它会像下面这样向我返回数据(示例)

可以看出,前面的0号是从lng中删除的。我真的不知道怎么修理它。有人能帮忙吗?非常感谢

**编辑:在SQL Server中,Lng数据类型为十进制(11,8),与MySQL相同

更新
有一种解决方法-通过
sprintf()
直接将
0
添加到数据中。但如果我这样做,问题就不会从根本上得到解决。但是,我会这样做,因为目前还没有合适的解决方案。

这是本机客户端驱动程序中的一个错误,很不幸,我没有证据表明它已经被纠正。尝试返回

如何定义数据字段?lng为十进制(11,8)。与MySQL相同@$sth->fetchAll()的输出是什么?只是为了确保在函数调用过程中不会发生任何事情。@Araw我使用print\u r()来查看它。它是一样的。如果我直接执行它,它工作正常。但是PDO+sqlsrv可能会对数据造成影响。
"data" : [
    {
        "item_id" : "1",
        "lat" : "51.42743450",
        "lng" : "-0.72776696"
    }
]
 "data" : [
    {
        "item_id" : "1",
        "lat" : "51.42743450",
        "lng" : "-.72776696"
    }
]