1

mysqlクエリの結果を配列に変換する関数を作成しようとしています

以下の関数では、フィールドisbn, title and rankがあると想定していますが、常にそうであるとは限りません。

この情報を事前に知らなくても、値とともにフィールド名を取得する方法はありますか?この関数を任意のmysqlクエリ結果で使用できるようにします。

働き

function mysqlToArray($result){

   $arr = array();
   $numRows = mysql_num_rows($result);//count
   if($numRows>0){
      for($i=0; $i<$numRows; $i++){
         $arr[] = array(
            "isbn"      => mysql_result($result, $i, "isbn"),
            "title"     => mysql_result($result, $i, "title"),
            "rank"      => mysql_result($result, $i, "rank"),                   
         );
      }
   }        

   return $arr;
}

使用例

function getProfitableBooks(){
    $q = "SELECT isbn, title, rank FROM ".TBL_BOOKS;

    $result = mysql_query($q, $this->connection);
    if(!$result || (mysql_numrows($result) < 1)){  
        return null;
    }
    return $this->mysqlToArray($result);
}
4

4 に答える 4

2

このmysql_fetch_arrayを見てみてください

于 2012-08-14T16:29:05.923 に答える
1

これには素晴らしいPHP関数がありますmysql_fetch_array

PHPマニュアルでmysql_fetch_arrayの例を表示できます。

于 2012-08-14T16:28:09.267 に答える
1

colsの名前を取得するには、このようなものを試してください。

my $table = 'name';
my $sth = $dbh->prepare("SELECT * FROM $table WHERE 1=0;");
$sth->execute;
my @cols = @{$sth->{NAME}}; # or NAME_lc if needed
$sth->finish;
foreach ( @cols ) {
    printf( "Note: col : %s\n", $_ );
}
于 2012-08-14T16:29:38.143 に答える
1

PHPのマニュアルを確認しましたか?

mysql_fetch_assocはここで役立ちます:

function mysqlToArray($result)
{
   $arr = array();
   while($arr[] = mysql_fetch_assoc($result));

   return $arr;
}
于 2012-08-14T16:29:51.693 に答える