0

这个论坛和php的新手,所以请放轻松。

我有一个 php 脚本,它处理来自数据库中多个 mysql 表的数据。我的所有其他查询都运行良好,但由于某种原因,只要条件为真以到达 mysql_fetch_array() 命令,这个查询就会引发错误。我一直试图找出这个查询与所有其他查询有何不同,但没有取得任何成功。

是否有人在以下代码段中看到任何可能导致以下错误的内容?

$errorFlag = 0;
$result = 0;
$counter = 0;
$sql = "SELECT * FROM Data WHERE Last_Update < DATE_ADD(NOW(), interval -1 MINUTE)";
while (!$result && $errorFlag == 0) {
  $result = mysql_query($sql);
  $counter = $counter + 1;
  if ($counter > 30) {
    $errorFlag = 1;
  }
}
if ($errorFlag == 1) {
  echo "#E01,".$counter.",".mysql_errno().":".mysql_error()."!";
}
if ($errorFlag == 0 && mysql_num_rows($result) > 0) {
  while(errorFlag == 0 && $row = mysql_fetch_array($result)) {
    if ($row['Last_Update_Alarm'] == 0) {
      $sql = "UPDATE $tbl_name SET Last_Update_Alarm='1', Status_Time='0' WHERE Machine_ID='$row[Machine_ID]'";
      $counter = 0;
      $result = 0;
      while ($result == 0  && $errorFlag == 0) {
        $result = mysql_query($sql);
        $counter = $counter + 1;
        if ($counter > 30) {
          $errorFlag = 1;
        }
      }
    }
  }
}

这是我得到的错误代码:

警告:mysql_fetch_array():提供的参数不是第 33 行 D:...\test.php 中的有效 MySQL 结果资源

第 33 行对应于带有 fetch 命令的行。我检查了查询后的资源类型和行数,两者都符合预期。

谢谢!斯科特

4

0 回答 0