![php5 から php7.0 にアップデートすると、phpmyadmin のエクスポート ページが空白になる](https://rvso.com/image/1502885/php5%20%E3%81%8B%E3%82%89%20php7.0%20%E3%81%AB%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81phpmyadmin%20%E3%81%AE%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%20%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%8C%E7%A9%BA%E7%99%BD%E3%81%AB%E3%81%AA%E3%82%8B.png)
私の Ubuntu 14.04 には、php5-fpm、nginx、mysql、phpmyadmin がインストールされていました。すべて正常でした。php を php7.0 に更新すると、phpmyadmin で mbstring のインストールが必要になりました。インストールしたところ、正常に動作しました。しかし、phpmyadmin のエクスポート ページには空白ページが表示されます。
このエラーは nginx エラー ログ ファイルに記録されます。
2016/08/09 16:20:31 [error] 1494#0: *35 FastCGI sent in stderr: "PHP message: PHP Fatal error: Cannot 'break' 2 levels in /usr/share/phpmyadmin/export.php on line 864" while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "POST /phpmyadmin/export.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.0-fpm.sock:", host: "localhost", referrer: "http://localhost/phpmyadmin/index.php?token=584932884866cc16a2444d67eb7927d0&phpMyAdmin=4aro5gojhjuli0svkuctbrlot0450dar"
答え1
phpmyadmin/export.php の 864 行目を変更して問題を解決しました。
break 2;
By:
break;
ソリューション提供者バランスの取れた以下では答え:
心配しないでください。これは phpMyAdmin チームのコード ミスです。ループは 1 つで、ネストされたループは 2 つではありません。そのため、「break 2」はできません (2 はネストされたループ内にあることを示しているため)。このエラーは、PHP7 が以前のバージョンよりも厳格であるために発生します。ちなみに、この方法で他のパッケージ (PHPExcel、phpMyAdmin の新しいバージョンなど) を修正できます。ほとんどの場合、開発者がネストされたループを削除し、このコード行の更新を忘れています。
答え2
私の場合は604行目で、うまくいきました。ありがとうございます
if ($GLOBALS[$what . '_structure_or_data'] == 'structure' || $GLOBALS[$what . '_structure_or_data'] == 'structure_and_data') {
if (!PMA_exportStructure($db, $table, $crlf, $err_url, $do_relation, $do_comments, $do_mime, $do_dates, 'triggers', $export_type)) {
break;
}