检查php中返回的mysql数组是否为空

时间:2013-07-19 12:08:11

标签: php mysql arrays count

我一直试图这样做一段时间但无济于事 基本上我有一个函数SelectRowByName返回mysql数组结果,我想验证它是否返回一个记录,但它不起作用。我的代码是:

$fileInfo = selectRowByName("SELECT ID,Mime,IconIMG FROM tblattachment_filetypes WHERE Active=1 AND Extension = '".$extension."'");

//我想在尝试填充以下变量之前验证$ fileInfo是否已填充以避免错误

$fileType = $fileInfo[1];
$fileTypeID = $fileInfo[0];
$fileIcon = $fileInfo[2];

我尝试过使用empty,isset和array count函数,但它们似乎不起作用。基本上,查询可能不会返回任何记录,并且可能无法填写$ fileInfo,我想验证它。

SelectRowByName代码是:

      function selectRowByName($query)
      {
          global $server,$dbusername,$dbpassword,$db,$connection,$dbCon;
          $theQuery = mysql_query($query);
          $result = mysql_fetch_array($theQuery) or die(mysql_error());
          return $result;   
      }

2 个答案:

答案 0 :(得分:1)

在SelectRowByName函数中,您可以使用以下之一(取决于您访问MySQL的方式):

mysql_num_rows()
mysqli_stmt_num_rows()
PDOStatement::rowCount()

获取返回的行数。

答案 1 :(得分:1)

这应该可以解决问题:

function selectRowByName($query){
      $q=mysql_query($query);

      if($q!=false){
          $result=mysql_fetch_array($q);

          if(is_array($result)&&count($result)>0){
              return $result;
          }
          else{
              return false;
          }
      }
      else{
           return false;
      }
  }

我不建议使用此代码。首先,现在不推荐使用mysql_函数,因此最好使用mysqli或PDO。另一件事是这个函数只能从查询中返回一个单行。

无论哪种方式,希望这有帮助。

赖安