几天前, 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 $

本地主机上的输出:



服务器上的输出:



1/还有什么我应该看的吗?

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

谢谢你。

最佳答案

咳咳,我傻了!至少我今天学到了一些东西。

phpinfo() 来自控制台的 php 版本,而不是 Apache。
原来 php7.1 和 mysqlnd 没有加载到 Apache 中。

现在一切都很好...

关于php - DB 返回 string 而不是 int (mysqlnd for PHP-7.1/Laravel),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42862620/

10-11 17:37