数日前、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/ 一般に、int を期待するのではなく、db から文字列を受け入れるようにコードをリファクタリングする必要がありますか?
ありがとうございました。