【发布时间】:2017-08-09 07:29:30
【问题描述】:
几天前,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 $
在本地主机上输出:
"id" => 5
服务器上的输出:
"id" => "5"
1/ 还有什么我应该看的吗?
2/ 一般来说,我应该重构我的代码以接受来自数据库的字符串而不是期待整数吗?
谢谢。
【问题讨论】:
-
您是在使用
mysqli还是PDO进行查询? -
@TomUdding 我正在使用 Laravel 5.4 和 PDO。
-
您为表中的
id字段使用了什么数据类型? -
@TheAlpha 在 Laravel 迁移中,
$table->increments('id')在 MySQL 中是一个无符号整数。
标签: php laravel debian mysqlnd php-7.1