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 回答