[前][次][番号順一覧][スレッド一覧]

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>]