【问题标题】:Lost connection to MySQL server during query - PHP, MySQL查询期间失去与 MySQL 服务器的连接 - PHP、MySQL
【发布时间】:2011-03-28 07:51:59
【问题描述】:

我有这个 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]:在第 8 行的 /domains/4444.com/html/55.php 中查询期间丢失与 MySQL 服务器的连接

致命错误:在第8行的/domains/4444.com/html/55.php中查询期间丢失与mysql服务器的连接

谢谢 jean

【问题讨论】:

  • 有关此错误的详细信息:dev.mysql.com/doc/refman/5.0/en/gone-away.html
  • 我看到这个页面,我可以编写一个可以克服这个错误的代码吗? span>
  • 您确定是否可以使用您提供的凭据连接到远程服务器?为什么要使用持久连接?
  • @wimvds 手头的问题显然不是凭据问题,因为在尝试登录 MySQL 服务器之前连接已丢失。
  • 这可能是相关的:php.net/manual/en/function.mysql-pconnect.php#93760,所以你可以尝试用 mysql_connect 替换 mysql_pconnect 看看它是否能解决你的问题。

标签: php mysql mysql-error-1064


【解决方案1】:

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(),因为我发现它快一点。

【讨论】:

  • 不,您可以在会话中多次使用 mysql_pconnect,它只会重用您已经打开的连接。但是我不建议使用持久连接,如果你有很多并发用户,你可能很快就会用完连接......
  • @wimvds 我说的是“您在整个会话期间只需要连接一次”而不是“您可以或必须在整个会话期间只连接一次”
  • 此外,int 一遍又一遍地调用持久连接有什么意义呢?你也可以使用 mysql_connect();那么。
猜你喜欢
  • 2010-12-25
  • 2012-11-15
  • 2015-11-22
  • 1970-01-01
  • 2020-07-11
  • 2013-02-06
  • 2015-09-22
  • 1970-01-01
  • 2015-06-27
相关资源
最近更新 更多