PHPのエラーログに
\xe3\x83\x87\xe3\x83\xbc\xe3\x82\xbf\xe3\x83\x99\xe3\x83\xbc\xe3\x82\xb9\xe3\x82\xa8\xe3\x83\xa9\xe3\x83\xbc
というerrorが発生。
wordpressを動かしているサーバーのPHPのエラーログに上記のようなエラーがあったので、これについて調べてみました。(今後の為の備忘録)
■文字化けしてますが「データベースエラー」
文字化けしているのですが、\xを%に変換してURLデコードすると
「データベースエラー」となります。(結論、今回の場合で言うとSQLのエラーでした)
エラー内容をよく見てみます。
[Fri Nov 01 00:09:50.630031 2099] [php7:notice] [pid 99999] [client 999.999.999.999:0] WordPress
\xe3\x83\x87\xe3\x83\xbc\xe3\x82\xbf\xe3\x83\x99\xe3\x83\xbc\xe3\x82\xb9\xe3\x82\xa8\xe3\x83\xa9\xe3\x83\xbc:
You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 for query SELECT post_title FROM XXX_posts as posts WHERE posts.ID =
made by require('wp-blog-header.php')
, require_once('wp-includes/template-loader.php')
, include('/themes/XXX/index.php')
※上記は改行コード無しの一行でした
※一部文字列をXに、数値を9に置き換えてます
ファイル名が3つほど確認できました。最後のファイル(index.php)を開き、怪しそうなSQL文を探しましょう。上記の場合は条件文「posts.ID = 」の右辺の値がNULLだったのでDBのエラー(syntaxエラー)になっていたようです。
ファイル名がいくつかありましたが、一つ一つ丁寧に見ていくと、場所の特定はすぐに出来ました。結果、運用側で設定しなければならないカスタムフィールドに値を設定していないことが直接の原因でした(ダッシュボード側で入力チェックをかけてませんでした)。
PHPのエラーログは毎日見ていないので今後は定期的にチェックしたいと思います。
コメント