Php 在mysql\u fetch\u对象中运行查询,同时循环导致错误

Php 在mysql\u fetch\u对象中运行查询,同时循环导致错误,php,mysql,Php,Mysql,我正在运行一个查询,从源表中提取一些电影数据,以便导入到新的数据库结构中。然后,我使用mysql_fetch_对象循环遍历结果,解析数据,调用外部函数等,以添加类型、角色等。。。到数据库中的其他表 在我调用的一个函数中,对同一数据库中的不同表进行查询。然后,我在该查询中得到一个“不是有效的MySQL链接资源” 这样做是否会引起问题 以下是有关错误发生方式的一些代码: function doThis($thing) { mysql_query("SELECT derp FROM herp

我正在运行一个查询,从源表中提取一些电影数据,以便导入到新的数据库结构中。然后,我使用mysql_fetch_对象循环遍历结果,解析数据,调用外部函数等,以添加类型、角色等。。。到数据库中的其他表

在我调用的一个函数中,对同一数据库中的不同表进行查询。然后,我在该查询中得到一个“不是有效的MySQL链接资源”

这样做是否会引起问题

以下是有关错误发生方式的一些代码:

function doThis($thing) { 
   mysql_query("SELECT derp FROM herp WHERE sherp = $thing",$db)or die(mysql_error()); 
}

$query = mysql_query("SELECT foo FROM bar",$db);
while($row = mysql_fetch_object($query)) {
   doThis($row->awesome);
}
这基本上就是我正在做的,我得到了一个错误,不知道为什么

值得注意的是,在此过程中,我连接了两个数据库。我从中提取数据的数据库和我导入的数据库


谢谢

2件事:您没有在函数中将$db声明为全局变量(因此它未声明,导致您看到的错误)。添加以下内容:

global $db;

其次,从while循环中删除function关键字。这可能会导致php崩溃。

您的代码示例有点不对劲。。您不需要调用
函数来完成此操作($row->awesome)但只是
做这件事($row->awesome)。您没有对查询执行任何错误检查-它可能会由于SQL中的错误而崩溃,但您永远不会看到它。有关如何显示的示例,请参见errors@Richards.  谢谢你的帮助。函数调用fine。。。但错误在查询上。我还向查询中添加了“or die(mysql_error())。让我编辑。连接字符串位于页面顶部,并引用变量$db。没关系,函数无法访问默认范围的变量,您必须为函数(在类之外)全局化它访问变量。很好的调用。这非常有效。我以前从未做过这件事,但我想我从来没有做过这么大和复杂的导入,做它正在做的事情。谢谢你的帮助。