繁体   English   中英

Mysql查询mysql_fetch_array

[英]Mysql query mysql_fetch_array

$data = mysql_query("SELECT * FROM users);

现在数据存储在$data变量中。 我想将mysql数据存储在一个数组中并返回它。

$data_array = mysql_fetch_assoc($data);

这将存储数据的第一行(第一数组)。

现在要存储所有行,我想知道应该怎么做。

标准方法:

    $res = mysql_query($sql);
    $data = array();
    while(($row = mysql_fetch_array($res)) !== false) {
       $data[] = $row;
    }

// now $data is an array with all rows

http://php.net/manual/en/function.mysql-fetch-array.php

返回与获取的行对应的字符串数组,如果没有更多行,则返回FALSE。

这种方法适用于mysql_fetch_*函数。

while ($row = mysql_fetch_assoc($data))
   {
     array_push($data_array,$row);
   }

如果您的结果集很大,那么这样做并不是一个好主意。 它可能会在进程上使用大量内存。

话虽如此,您可以将整个内容存储在这样的数组中:

<?php

$query="select * from table_xyz";
$result = mysql_query($query) or die(mysql_error());
$arr_table_result=mysql_fetch_full_result_array($result);

function mysql_fetch_full_result_array($result)
{
    $table_result=array();
    $r=0;
    while($row = mysql_fetch_assoc($result)){
        $arr_row=array();
        $c=0;
        while ($c < mysql_num_fields($result)) {        
            $col = mysql_fetch_field($result, $c);    
            $arr_row[$col -> name] = $row[$col -> name];            
            $c++;
        }    
        $table_result[$r] = $arr_row;
        $r++;
    }    
    return $table_result;
}

?>

从PHP站点获得了代码示例

  $res = mysql_query($sql);
    $data = array();
    while(($row[] = mysql_fetch_array($res)) !== false) {
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM