いつのタイミングが不明ですが、
下記の表示が大量に発生し、Webサイトの表示が正常にできなくなりました。
Notice (8): Undefined offset: 0 [CORE/Baser/Model/Datasource/Database/BcSqlite.php, line 495]
Notice をクリックして、展開すると下記のメッセージが表示されます。
BcSqlite::resultSet() - CORE/Baser/Model/Datasource/Database/BcSqlite.php, line 495
DboSource::fetchRow() - CORE/Baser/Model/Datasource/DboSource.php, line 687
DboSource::fetchAll() - CORE/Baser/Model/Datasource/DboSource.php, line 733
DboSource::read() - CORE/Baser/Model/Datasource/DboSource.php, line 1239
BcAppModel::find() - CORE/Baser/Model/BcAppModel.php, line 1555
BcSite::findAll() - CORE/Baser/Lib/BcSite.php, line 299
require - CORE/Baser/Config/bootstrap.php, line 307
include - APP/Config/bootstrap.php, line 128
Configure::bootstrap() - CORE/Cake/Core/Configure.php, line 98
include - CORE/Cake/bootstrap.php, line 432
[main] - ROOT/index.php, line 148
さくらインターネットが提供するコントロールパネルでの php.ini の設定は以下のとおりです。
error_reporting = E_ALL & ~E_NOTICE
display_errors = On
Notice の表示を php.ini で抑制しているはずなのに、上記の Notice が表示されます。
BcSqlite.php, line 495 if($metaData[0] === false) { の直前に
$prev_error_reporting = ini_get(‘error_reporting’);
ini_set(‘error_reporting’, 0);
を挿入し、if文のあとに
ini_set(‘error_reporting’, $prev_error_reporting);
を挿入して、error_reporting 設定を元に戻す処理を入れて、対処療法しました。
今のところ、Notice の表示が抑制できているようです。
根本的な解決策を教えていただけますと、助かります。
【環境情報】
・baserCMSのバージョン:4.2.0 および 4.3.7 で確認(上記の報告は 4.3.7の例)
・レンタルサーバー名:さくらインターネットレンタルサーバ、ライトプラン
・データベース:Sqlite