【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でもいいが)を挿入するようにプログラムを変更。

日々のITエンジニアの日常作業を発信しています。
また、様々なレビュー記事も書いていますので、ぜひご活用ください。

基本的に投稿は毎週月曜日の午前です。
2025年2月中旬より手術の為に入院をしていましたが、ようやくブログ投稿の復帰ができそうです。
4月中旬~下旬には再開予定です。

では今週も頑張っていきましょう!
ガンバー!!

PHP

コメント