2010年9月28日火曜日

undefined function mysql_set_charset()で悩んだ。

とあるWebアプリを、新しいサーバ環境で動かそうとしたら、画面が真っ白。

デフォルトがエラー非表示設定だったので、php.iniを編集できるから、error_logをとることに。

log_errors =On
error_log=/home/hoge/public_html/php.log(みたいな絶対パスで指定)

として、書き込み権限を加えて準備。(エラーログが取れるかちょっとドキドキしました(笑)嗚呼、初心者)

エラーログを見てみると、 ちゃんとログが取れている。嬉しい。

そこで、undefined function mysql_set_charset() と書いてあって、「おや?」となりました。
なんで定義されてないんだろう。と、こんなときはグーグル先生。

どうもPHPのバージョンによって使える環境と使えない環境があるのですね。
mysqliが導入されていれば良い様子。
http://nonn-et-twk.net/twk/why-set-names-in-php-is-bad

結局、自分の場合は、DBの文字コードが整合性があったようで、この関数部分を削除したらすんなり通りました。
エラーログってありがたいなあ、と改めて思ったものでした。

0 件のコメント:

コメントを投稿