[PHP-users 24190] エラーがでるときと出ないときがある場合のデバッグの仕方について

kato @ officeants.net kato @ officeants.net
2005年 1月 21日 (金) 16:05:49 JST


いつもお世話になります。
オフィスアンツの加藤と申します。

さて、
私のサーバー環境は
PHP Version 4.3.10
FreeBSD mgu.or.jp 4.7-RELEASE-p27 FreeBSD 4.7-RELEASE-p27 #38: Th i386
MySQL 4.0.22
のような環境で、スクリプトを制作しております。

それで、質問ですが
MYSQLに登録されているデータを引き出してきて単純にブラウザに引き出してくるプ
ログラムを組んでいるのですが、
「エラーが返されるときと、返されないとき」があります。
継続的にエラーがでていれば追求することができるのですが、
「更新」ボタンを何度か押したり、プログラムを(ソースコード変更せず)アップ
ロードしたりすると、そのエラーがなくなります。
それで安心して、翌日に再度確認しようとすると、またエラーがでてきます。

私が試してみたことには、
まず、キャッシュの問題ではないかと考え
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
を送りキャッシュをクリアしてみたのですが、上記のような現象は再び起こりまし
た。

次に、
エラーの内容が下記のように、
 //ブラウザに表示されるエラー内容の例
 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
1create temporary table O_TMP select *,count(o01) as count from O where oc14
like '%XX%' group y oc02,oc03 order by o08<=FAILED
と表示されるときがあります。上記でgroup yとありますが、ソースコードにはきち
んとgroup byと記載しております。
このことから、phpプログラムがEUCになっていないのではないかと思い、すべての
ファイルをチェックしましたが、すべて「EUC」で作成していました。

過去ログを読んでみたのですが同様の事例がなく、ご質問させていただきました。
なんとなく、Apacheか、PHPの設定に問題があるのではないかと思い調べているので
すが、とくに特殊な設定をしていない状態でした。

ちなみに他のエラーもあげて起きます。
//ブラウザに表示されるエラー内容の例
Warning: Unexpected character in input: ' in
/usr/local/apache/htdocs/admin/order_input.php on line 36
->36行目のソースコード
$next = $_REQUEST['next'];

これもエラーがでたりでなかったりします。

大変申し訳ありませんが、ヒントと成るようなことでもありましたら、教えていただ
けないでしょうか?
どうぞ、よろしくお願いいたします。
=====================
オフィスアンツ
加藤春樹
=====================



PHP-users メーリングリストの案内