DB返回字符串而不是int(PHP-7.1 / Laravel的mysqlnd)

时间:2017-03-17 16:27:40

标签: php laravel debian mysqlnd php-7.1

几天前,I asked a question about a bug I found in Laravel

要修复它,我在我的服务器上安装了php5-mysqlnd。

今天,我将我的应用程序升级到最新的php 7.1。*。一切正常,除了错误再次回来,即数据库中的整数作为字符串返回,这不符合我的严格比较。

我试图为php 7.1找到mysqlnd的包,但是没有(但是?)。但是mysqlnd似乎已启用了......

的phpinfo()

PHP Version => 7.1.3-2+0~20170315222009.20+jessie~1.gbpc7e7dd
System => Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64

mysqlnd
mysqlnd => enabled
Version => mysqlnd 5.0.12-dev - 20150407 - $Id: b396954eeb2d1d9ed7902b8bae237b287f21ad9e $

pdo_mysql
PDO Driver for MySQL => enabled
Client API version => mysqlnd 5.0.12-dev - 20150407 - $Id: b396954eeb2d1d9ed7902b8bae237b287f21ad9e $

localhost上的输出:

  

" ID" => 5

服务器上的输出:

  

" ID" => " 5"

1 /我还应该看看其他什么吗?

2 /一般情况下,我应该重构我的代码以接受来自db的字符串而不是期望整数吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

叹了口气,我很笨!至少我今天学到了一些东西。

phpinfo()来自控制台的php版本,而不是Apache。 结果是php7.1并没有在Apache中加载mysqlnd。

现在一切都很好......