Потерянное соединение с сервером MySQL во время запроса - PHP, MySQL - PullRequest
0 голосов
/ 11 августа 2010

У меня есть этот php-код, файлы размещены на другом сервере и в БД, где

$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]: потеря соединения с сервером MySQL во время запроса в /domains/4444.com/html/55.php в строке 8

Фатальная ошибка: потеря соединения с сервером MySQL во время запроса в/domains/4444.com/html/55.php в строке 8

Спасибо, Жан

1 Ответ

2 голосов
/ 11 августа 2010

mysql_pconnect () создает постоянное соединение с базой данных, тогда как mysql_connect () - нет. Если вы создаете постоянное соединение, вам нужно подключаться только один раз в течение сеанса, поэтому, если вы создаете постоянное соединение более одного раза, это может быть причиной.

На общих серверах, возможно, стоит попробовать mysql_connect () вместо mysql_pconnect () и посмотреть, исправит ли это проблему под рукой. Также в вашем коде у вас есть:

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

Но должно быть:

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

потому что $ xxx никогда не был переменной соединения, а $ shasown -.

Лично мне нравится использовать mysqli_connect (), так как я считаю, что это немного быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...