こんにちは、コブラです。
先日書いた「500エラー 予期しない状況が発生しました。の対処法。」という記事ですが、
これで解決しませんでした・・・。
オーバーヘッドが0.0KBでも発生する・・・何故だ・・・。
と思っていたら、とんでもないところに原因がありました!
それがこれ!
ループの中で同じファイルを何度もincludeしていたから!
以前、includeとrequire_onceの違いなどは書きましたが、
includeするクラスの中にファンクションなどがあると、
何度も定義しようとしてエラーになるのだとか。
でもincludeなので、処理は止まらないと。
なるほど・・・つまり、こういうことです!
for ($i = 0; $i < 100; $i++) {
include "hoge.inc"; // getHogehoge()を何度も定義しようとするから×。ループの外に出す
getHogehoge();
}
-hoge.inc
function getHogehoge() {
return true;
}
原因が分かってスッキリしました!
初歩的なことですが見落としがちかも、皆さんもご注意を!
MySQL, PHP, 社員:cobra
こんにちは、コブラです。
HTTP エラー 500(Internal Server Error):
サーバーによるリクエストの実行中に、予期しない状況が発生しました。
こんなエラーが出た時の対処法です。
ググってみると、どうやらWordpressなどでも発生する事があるようですが、
MySQL側の問題のよう。
テーブルのオーバーヘッド領域が大きすぎて良くないらしい。
PHPMyAdminで見てみると、確かにあるテーブルのオーバーヘッドが10KB…。
「オーバーヘッド」とは、追加・更新・削除を行っていくと作られるゴミ領域らしい。
というわけで対処法です。
PHPMyAdminより、該当のテーブルを選び、「テーブルを最適化する」を選ぶだけ!
またはOPTIMIZE TABLE TABLE_NMでもいいらしい!
MySQL, WordPress, 社員:cobra
こんにちは、コブラです。
teratermなどのターミナルソフトからMySQLを操作する時に、
コマンドからSQLファイルを実行する方法です。
# mysql DBNAME < 実行したいSQLファイル名(.txtや.sql)
簡単ですね!
sqlファイルにuse DBNAMEを書いている場合は、
# mysql < 実行したいSQLファイル名
と書けます!
MySQL, 社員:cobra