简单的PHP查询在一个页面上工作,在另一个页面上爆炸

时间:2011-11-18 20:19:35

标签: php mysql

我在两个页面上使用了这个确切的代码,并且在其中一个页面上爆炸了。两个页面都具有完全相同的user / pass / host / db链接(相同的标题),如果我打印$命令并粘贴到Sequel Pro中,查询将返回一条记录。

以下是查询:

$command = "SELECT ID,Location,OriginalLocationID FROM locations WHERE FloorID='".$_SESSION['FloorID']."' ORDER BY ID DESC LIMIT 1";
echo $command;
$query = mysql_query($command);
while($results = mysql_fetch_row($query))
{
    $_SESSION['LocationID']=$results[0];
    $_SESSION['LocationName']=$results[1];
    $_SESSION['OriginalLocationName']=$results[2];
}

我得到的错误是:

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource

作为注释,单击链接时会设置SESSION ['FloorID'],因此不会为空或已损坏。知道我做错了什么,或者为什么它会在一个页面而不是另一个页面上工作?

另外 - 是的,我用谷歌搜索,它不是一个空的错误或语法或任何东西,因为正如我所提到的,它在另一页上完美运作。

1 个答案:

答案 0 :(得分:2)

  

警告:mysql_fetch_row():提供的参数不是有效的MySQL结果资源

这表示查询本身失败,这可能是由于语法无效或因为数据库连接本身尚未建立而发生。

您必须在调用mysql_fetch_row()之前执行错误处理,并在失败时使用mysql_error()来确定错误原因。

$query = mysql_query($command);
if ($query)
{
  while($results = mysql_fetch_row($query))
  {
      $_SESSION['LocationID']=$results[0];
      $_SESSION['LocationName']=$results[1];
      $_SESSION['OriginalLocationName']=$results[2];
  }
}
else echo mysql_error();