类似的问题我已经被问过很多次了。但是由于在我之前提出的任何问题中都没有找到解决方案,所以我可以自由地再次提出它。
我的程序使用由我制作的类,该类处理该程序的所有数据库连接。我之前使用过的几个模块都使用相同的类,但是当我选择使用相同的类来创建新模块时,警告显示为-
警告: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()查明数据库连接是否有效。
如果这是一个罕见的问题,请将内容记录到文件中,然后等待再次发生。