2

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

$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];

我尝试过使用空、isset 和数组计数函数,但它们似乎不起作用。基本上,查询可能不会返回任何记录,并且 $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;   
      }
4

2 回答 2

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。另一件事是这个函数只能从查询中返回一个单数行。

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

瑞安

于 2013-07-19T12:13:48.963 回答
1

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

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

获取返回的行数。

于 2013-07-19T12:12:09.103 回答