mysql_fetch_array()期望参数1是资源,布尔值

时间:2012-09-07 01:28:11

标签: php

美好的一天,我遇到上述错误,我无法找到适当的脚本..但这是发生错误的行..

$db = mysql_connect($mysql_server, $mysql_username, $mysql_password);
   mysql_select_db($mysql_database, $db);
   $sql = "SELECT password, fullname, active FROM ".$mysql_table." WHERE username = '".$_POST['username']."'";
   $result = mysql_query($sql, $db) or trigger_error ( mysql_error ( ) );
   if ($data = mysql_fetch_array($result))
   {
      if ($crypt_pass == $data['password'] && $data['active'] != 0)
      {
         $found = true;
         $fullname = $data['fullname'];
      }
      else die(mysql_error());
   }
   mysql_close($db);
   if($found == false)
   {
      header('Location: '.$error_page);
      exit;
   }
   else
   {
      session_start();
      $_SESSION['username'] = $_POST['username'];
      $_SESSION['fullname'] = $fullname;
      $rememberme = isset($_POST['rememberme']) ? true : false;
      if ($rememberme)
      {
         setcookie('username', $_POST['username'], time() + 3600*24*30);
         setcookie('password', $_POST['password'], time() + 3600*24*30);
      }
      header('Location: '.$success_page);
      exit;
   }
不过,这是一个登录表单..

谢谢!

1 个答案:

答案 0 :(得分:0)

($data = mysql_fetch_array($result))

如果$ result是空数据集,则会触发此错误。 在执行此操作之前,请检查返回的行数是否> 0。

mysql_num_rows是您在尝试将其放入数组之前检查所返回的行的方法。

此外,不建议使用mysql_*个附加信息。对于新项目,请转到MySQLiPDO_MySQL