PHP5.6 → 7.3 アップグレード時に発覚したPDOの非互換について記録しておく。
PDOでDBの値を更新するために以下のように記述
$stmt->bindParam(':param1', $float, PDO::PARAM_INT);
$floatに1.5が入力されていたとすると、
PHP5.6の場合、1.5で更新
PHP7.3の場合、1で更新
される。
小数点で更新する場合、
PDO::PARAM_STR
にすれば、どちらのバージョンでも整数に丸められず更新されるが、
PHP5.6のときは
PDO::PARAM_INT
でも、小数点が丸められずに更新できていた。
PHP7.0、7.1、7.2、7.3のどのタイミングで非互換が発生したのかは調査中。