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

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;   
      }
4

2 に答える 2

1

SelectRowByName 関数内では、次のいずれかを使用できます (MySQL へのアクセス方法によって異なります)。

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

返される行数を取得します。

于 2013-07-19T12:12:09.103 に答える
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 を使用したほうがよいでしょう。もう 1 つのことは、この関数がクエリから単一の行しか返すことができないということです。

いずれにせよ、これが役立つことを願っています。

ライアン

于 2013-07-19T12:13:48.963 に答える