0

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

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

警告: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's 的函数和以前一样工作得很好,查询执行得很好。但是警告显示的原因是我无法理解的。有什么帮助吗?

4

2 回答 2

3

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

  1. is_resource()get_resource_type()来确认这$this->connection是一个有效的数据类型。
  2. mysql_ping()来确定数据库连接是否处于活动状态。

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

于 2012-06-21T09:18:43.080 回答
0

不应该有空格。

$result = mysql_query($_query,$this->connection);
于 2012-06-21T09:01:34.830 回答