类似的问题我已经被问过很多次了。但是由于在我之前提出的任何问题中都没有找到解决方案,所以我可以自由地再次提出它。

我的程序使用由我制作的类,该类处理该程序的所有数据库连接。我之前使用过的几个模块都使用相同的类,但是当我选择使用相同的类来创建新模块时,警告显示为-

警告:mysql_query():7在第49行上的任何地方都不是有效的MySQL-Link资源。

当我通过自己创建的函数执行MySQL查询时,就会发生警告。功能如下:

public function runquery($_query)
{
  $result = mysql_query($_query,$this -> connection); //line 49
  if (! $result) die(mysql_error());
  else return $result;
}


该函数属于名为mysql的类,尚未被篡改或对其进行任何更改。因此,该函数在技术上应该可以按预期工作,因为其他所有依赖同一类进行数据库连接的模块都可以正常工作。

查询执行成功,但是我设法更新表没有问题(警告除外)。从中调用runquery()函数的主程序中的代码块如下-

$phpmyadmin = new mysql();
$phpmyadmin->connect('localhost', 'root', '');
$phpmyadmin->setdb('test_db');
$result = $phpmyadmin->runquery($Query);
unset($phpmyadmin);


因此mysql的功能可以像以往一样正常工作,并且查询也可以正常执行。但是警告显示的原因是我无法理解。有什么帮助吗?

最佳答案

该症状表明数据库连接已关闭或断开。在代码中查找不需要的mysql_close()调用。此外,您可以使用以下功能对问题进行故障排除:


is_resource()get_resource_type()以确认$this->connection是有效的数据类型。
mysql_ping()查明数据库连接是否有效。


如果这是一个罕见的问题,请将内容记录到文件中,然后等待再次发生。

10-08 09:08
查看更多