在mysql_fetch_object内运行查询while循环导致错误

时间:2011-06-24 22:57:41

标签: php mysql

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

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

是否有任何可能导致问题的事情?

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

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个数据库。数据库我从中导入数据和我导入的数据库。

谢谢!

1 个答案:

答案 0 :(得分:2)

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

global $db;

其次,从while循环中删除function关键字。这很可能导致php变成biff。