2010-08-11 3 views
0

나는이 PHP 코드를 가지고있는 파일은 다른 서버에서 호스팅하고 다른 DB 내가 점점 오전 오류가잃어버린 연결 - PHP, MySQL을

$hostname_xxx = "xxxdb.db.234141.mysqldbhosted.com"; 
$database_xxx = "xx11xx"; 
$username_xxx = "xx11xx"; 
$password_xxx = "xx332211xx"; 
$shasown = mysql_pconnect($hostname_xxx, $username_xxx, $password_xxx) or trigger_error(mysql_error(),E_USER_ERROR); 


$your_ip = $_SERVER['REMOTE_ADDR']; 


echo $your_ip; 



$insertSQL1 = "INSERT INTO table (users_ip) VALUES ('$your_ip)"; 
mysql_select_db($database_xxx, $xxx); 
$Result21 = mysql_query($insertSQL1, $xxx) or die(mysql_error()); 

입니다된다 경고 : mysql_pconnect() [function.mysql-pconnect] : 8 행의 /domains/4444.com/html/55.php에서 쿼리하는 동안 MySQL 서버 연결이 끊어짐

치명적 오류 : 쿼리 중에 MySQL 서버에 대한 연결이 끊어졌습니다. /domains/4444.com/html/55.php에 로 mysql_connect()하지 않는 반면 라인 8

감사 장

+0

이 오류에 대한 세부 정보 : http://dev.mysql.com/doc/refman/5.0/en/gone-away.html –

+0

이 페이지를 보았는데이 오류를 극복 할 수있는 코드를 작성할 수 있습니까? – X10nD

+0

제공 한 자격 증명으로 원격 서버에 연결할 수 있습니까? 그리고 왜 당신은 지속적인 연결을 사용하고 있습니까? – wimvds

답변

2

는 mysql_pconnect()는 데이터베이스에 영구 연결을 만듭니다. 영구 연결을 만드는 경우 세션 전체에서 단 한 번만 연결해야하므로 영구 연결을 두 번 이상 만드는 경우 이것이 원인 일 수 있습니다.

공유 서버에서 mysql_connect()를 통해 mysql_connect()를 시도해보고 문제가 해결되었는지 확인할 수 있습니다.

$Result21 = mysql_query($insertSQL1, $xxx) or die(mysql_error()); 

을하지만해야한다 : 또한, 코드에서, 당신은

$Result21 = mysql_query($insertSQL1, $shasown) or die(mysql_error()); 

하는 $의 xxx는 결코 연결 변수 없었다하지만 $ shasown 때문이다.

개인적으로는 조금 더 빨라서 개인적으로 mysqli_connect()를 사용하고 싶습니다.

+0

아니요, 아니요, 세션 내에서 원하는만큼 mysql_pconnect를 사용할 수 있습니다. 이미 열려있는 연결을 다시 사용합니다. 하지만 영구적 인 연결을 사용하지 말라고 충고하지 않을 것입니다. 동시 사용자가 많은 경우 연결이 매우 빨리 끊길 수 있습니다. – wimvds

+0

@wimvds "세션 전체에서 한 번만 연결하면됩니다." 세션 중에 한 번만 연결하면됩니다. " – SimonDowdles

+0

게다가 지속적인 연결을 계속 호출하는 포인트 int는 무엇입니까? mysql_connect()를 사용하는 것도 가능하다. 그때. – SimonDowdles