我正在尝试创建一个将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);
}
答案 0 :(得分:2)
尝试查看此mysql_fetch_array
答案 1 :(得分:1)
这个mysql_fetch_array
答案 2 :(得分: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", $_ );
}
答案 3 :(得分:1)
您检查了PHP manual吗?
mysql_fetch_assoc会在这里提供帮助:
function mysqlToArray($result)
{
$arr = array();
while($arr[] = mysql_fetch_assoc($result));
return $arr;
}