牛、豚、鶏、どれか一つ食べられなくなるとしたら?

Mysql+phpで日報システムを作っています。
独学でWebサイトの情報を見ながら作っているのですが、
更新系の処理に手間取っています。

環境は以下の通りです。
PHP:5.2.4
OS:WindowsServer2003 SP1
MYSQL:5.1.41

元画面から、ボタンを押してDBの更新処理を行うと、画面が真っ白になってしまい固まった状態になります。
MYSQLの問題かなと当初は思ったのですが、更新自体もされてはいますので、PHPの問題ではと思い投稿させて頂きました。
他の参照系のスクリプトは正常に動作します。

ちなみに、この現象はIEでしか出ません。
FFやChromeでは正常に動作します。
ポップアップブロックも外し、IEのアドインを全部外してみましたが、結果は同じでした。

同様の事態を経験された方、考えられる原因を御存じの方がおられましたら、コメント頂ければ幸いです。

更新スクリプトの内容は以下の通りです。
<?php
// MySQL 接続
if (!($cn = mysql_connect("192.168.*.***", "user", "password"))) {
die;
}
// MySQL DB 選択
if (!(mysql_select_db("mydatabase",$cn))) {
die;
}
  (中略)
$SQL="UPDATE NIPPO SET = ***** ";
  (中略)
print $SQL; // ***** この内容が出ずに固まっている ******
$sts = mysql_query($SQL,$cn);
if (!$sts) {
print "<br><img src='img/error.jpg' width=32 height=32>";
print "更新に失敗しました。";
print "<br><A HREF='javascript:history.back()'>前のページに戻る</A>";
} else {
print "<br><img src='img/inf.jpg' width=32 height=32>更新しました。";
print "<br><A HREF='moto.php'>前のページに戻る</A>";
}
}
?>
</body>
</html>

A 回答 (2件)

クエリを投げる前にとまっているなら


コネクトかセレクトDBをうたがってみては?

$cn = mysql_connect("192.168.*.***", "user", "password") or die(mysql_error());
mysql_select_db("mydatabase",$cn) or die(mysql_error());
    • good
    • 0
この回答へのお礼

コメント有難うございました。

御蔭さまで、クエリを投げる前以前に、このphpスクリプト自体の表示がおかしい?ことが判りました。

呼出元のphpスクリプトはこんな感じです。

画面のフォーム上で承認ボタンを押した時、location.hrefでURL移動してスクリプトを呼出
<script type="text/javascript">
<!--
function Syonin(stype){
alert(stype); <---- 正常に表示される
location.href = "nippo_chk.php?stype=" + stype ;
//location.assign(...); でも結果は同じ。
}
// -->
</script>
(中略)
<input type="button" value="承認" onclick="Syonin(7)">

ポップアップブロックも外れていますし、アドオンも全て外してみましたが、同じ結果になってしまいます。
なんとも不可解な現象です。

お礼日時:2013/06/25 09:49

統合環境でブレークポイントを指定してデバッグするのが妥当ですが


簡易的には、各mysql関数に or die(mysql_error())をつけるのと
関数の前後にデバッグ用にprint文で行番号を表示させながらチェックすることで
どこで止まっているか確認できます。

<?PHP
print __line__."<br>";
かんすう
print __line__."<br>";
かんすう
print __line__."<br>";
・・・
?>
    • good
    • 0
この回答へのお礼

コメント有難うございました。

ちなみに、mysql関数のステイタスが返ってこないのと、
デバッグの行番号こそ付けていませんが、PRINT文は付けてはいます。
$sts = mysql_query($SQL,$cn);
というSQL文の実行の前のPRINT文が出てこないため、箇所が特定できないのです。

  (中略)
$SQL="UPDATE NIPPO SET = ***** ";
  (中略)
print $SQL; // ***** この内容が出ずに固まっている ******
$sts = mysql_query($SQL,$cn);

お礼日時:2013/06/24 18:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


おすすめ情報