mysql:11231
From: bon <bon <bon@xxxxxxxxxx>>
Date: Tue, 22 Mar 2005 13:45:21 +0900
Subject: [mysql 11231] mysql_connect
bonです。 ここで質問すべき内容か不明なのですが。。。 じゃあそうしなかったらいいじゃんってかんじなのですが。。。 以下のソースをcon.phpとして、 (XXXの部分は適宜変更して下さい) http://..../con.php?ptn=1 http://..../con.php?ptn=2 とした場合の挙動が理解できないのです。 ptn=1の場合 ptn=1 conn1=Resource id #2 conn2=Resource id #2 conn=Resource id #2 kekka=ok 1:ok 2:select error conn2=Resource id #2 となり ptn=2の場合 ptn=2 conn1=Resource id #2 conn=Resource id #2 kekka=ok 1:select error conn1=Resource id #2 conn2=Resource id #4 2:ok となります。 簡単に言うと、mysql_connectを発行した場所で動作が違うということでしょうか。 ptn=1で 1:ok なら、 ptn=2でも 1:ok とでると思われるのに結果は 1:select error です。 環境は Linux 2.4.21-20.ELsmp mysql 3.23.58 です。 この動作が説明できる方教えて下さい。 ーーーここからーーーー <? $ptn = $_GET["ptn"]; echo "ptn=".$ptn."<br>\n"; $host = "localhost";//XXX $db = "dbname";//XXX $user = "username;//XXX $pass = "password";//XXX $tbl = "tblname";//XXX $sql = "select count(*) from $tbl"; ?> <? function getcount() { global $host; global $user; global $pass; global $db; global $sql; $conn = mysql_connect($host,$user,$pass); echo "conn=".$conn."<br>\n"; $result = mysql_db_query($db,$sql,$conn); if($result <= 0 ) { //エラー return "error"; } mysql_freeresult($result); mysql_close($conn); return "ok"; } ?> <html> <body> <? $conn1 = mysql_connect($host,$user,$pass); //A echo "conn1=".$conn1."<br>\n"; if($ptn == 1){ $conn2 = mysql_connect($host,$user,$pass); //B echo "conn2=".$conn2."<br>\n"; } //パターン1:ABを有効。→1はOK。2はだめ。 //パターン2:ACを有効。→1はだめ。2はOK。 $work = getcount(); echo "kekka=".$work."<br>\n"; $result = mysql_db_query($db,$sql,$conn1); if($result <= 0 ) { echo "1:select error<br>\n"; echo "conn1=".$conn1."<br>\n"; } else { echo "1:ok<br>\n"; mysql_freeresult($result); mysql_close($conn1); } if($ptn == 2){ $conn2 = mysql_connect($host,$user,$pass); //C echo "conn2=".$conn2."<br>\n"; } $result = mysql_db_query($db,$sql,$conn2); if($result <= 0 ) { echo "2:select error<br>\n"; echo "conn2=".$conn2."<br>\n"; } else { echo "2:ok<br>\n"; mysql_freeresult($result); mysql_close($conn2); } ?> </body> </html> ーーーここまでーーーー -- bon@xxxxxxxxxx
-> 11231 2005-03-22 13:45 [bon <bon@xxxxxxxxxx>] mysql_connect 11232 2005-03-22 16:52 ┗[Sumito_Oda <oda@xxxx] 11233 2005-03-22 19:40 ┗[bon <bon@xxxxxxxxxx>] 11235 2005-03-22 22:15 ┗[nomoto <shin-1@xxxxx] 11237 2005-03-23 03:11 ┣[bon <bon@xxxxxxxxxx>] 11238 2005-03-23 03:13 ┗[Sumito_Oda <oda@xxxx] 11239 2005-03-23 04:57 ┗[nomoto <shin-1@xxxxx] 11242 2005-03-23 09:52 ┗[bon <bon@xxxxxxxxxx>]