检索列名称和值的 MySQL 结果


mysql result retrieving a column name and value

我正在尝试创建一个将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);
}

尝试查看此mysql_fetch_array

这个mysql_fetch_array有一个很棒的 PHP 函数

您可以查看 PHP 手册中mysql_fetch_array的示例。

尝试这样的事情来获取 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", $_ );
}

你查过PHP手册吗?

mysql_fetch_assoc在这里会有所帮助:

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