Search Replace DBで「The script encountered an error while running an AJAX request.」エラーが発生してしまう
- WordPressのDBに置換をかけるため「Search Replace DB」を使用したところ、以下のようなワーニング、エラーが発生しました
Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /xxx/yyy/zzz/srdb.class.php on line 854
The script encountered an error while running an AJAX request.
- 動作環境は以下の通り
- Search Replace DB
- 3.1.0
- MySQL
- 5.5
- PHP
- 7.4
対処方法
- Search Replace DBのフォルダにある「srdb.class.php」の854行目にある「continue;」文を削除
case 'utf32':
//$encoding = 'utf8';
$this->add_error( "The table \"{$table}\" is encoded using \"{$encoding}\" which is currently unsupported.", 'results' );
continue; ←これを削除
break;
備考
- PHP7.3から、switch文でcaseの終わりに「break」ではなく「continue」を使うとワーニングが出るようになりました
- ワーニングが出ている状態で置換をかけようとしたため、Search Replace DBがエラー状態となっていたようです
- ワーニング、エラーは解消し、置換処理が動きましたが、元コードでcontinueとbreakを続けて書いている理由はわかりませんでした(誤記?)
- 上記対処方法をお試しいただく際は、DBのバックアップと置換後の動作確認をしっかり行うようご注意ください
ご質問など受け付けています
記事の中でわかりにくかったところ、もっと知りたかったこと、間違っていることなど、何でもお気軽にご連絡ください。
ご連絡は下記フォームを利用いただくか、ツイッターアカウント@flat8migi宛てでもOKです。