【PHP】PHP7.2系から7.4系にアップデートし、開発アプリに不具合が発生した事

PHP

はじめに

あるフォームからMariaDBに書き込むアプリケーションに不具合が発生。
不具合の直前、CentOS7のPHPを7.2から7.4へアップデートした事、更にMariaDBも5系から10系にアップデートしていたので、どちらかのアップデートが原因。
とにかく原因をログから調査してみた。

不具合内容

このアプリは第三者が開発したPHPアプリ。
とりあえずログから確認すると、フォームからデータベースへのSQLのInsert処理でエラー。
SQLの実行部の変数を確認してみるとint型の項目へ空白が入っていた。

PHP7.2では発生せず、なぜ7.4のみ不具合が出ているのか・・・

原因はPOST取得か

更にアプリを分析すると、この項目(以降項目A)はフォームから直接【$_POST】で受け取ってからSQLを生成。
入力フォームの項目Aが未入力(空白)の場合、7.2ではnullとなるが7.4では空白をint型へ挿入する事でSQLエラーが発生する。

まとめ

今回は原因究明よりも対策を優先した為、調査はここまで。
7.2と7.4の仕様をもう少し調査したかったのですが、また時間のある時に行います。

エラー対策としては、未入力の場合はゼロ(NULLでもいいが)を挿入するようにプログラムを変更。

コメント