Php mysql结果到数组

Php mysql结果到数组,php,Php,向数组生成mysql结果的最快方法是什么 static function result($sql){ if(!$result = self::$link->query($sql)){ echo 'SQL: '.$sql.'<br>'.self::$link->error; } return $result; } static function rows($sql, $mode='assoc'){ $result = se

向数组生成mysql结果的最快方法是什么

static function result($sql){
    if(!$result = self::$link->query($sql)){
        echo 'SQL: '.$sql.'<br>'.self::$link->error;
    }

    return $result;
}

static function rows($sql, $mode='assoc'){
    $result = self::result($sql);

    $row_arr = array();
    if($mode == 'assoc'){
        while($row = $result->fetch_assoc()) $row_arr[] = $row;
    }
    elseif($mode == 'row'){
        while($row = $result->fetch_row()) $row_arr[] = $row;
    }
    $result->close();

    return $row_arr;
}
静态函数结果($sql){
如果(!$result=self::$link->query($sql)){
回显'SQL:'.$SQL'.
'。self:$link->错误; } 返回$result; } 静态函数行($sql,$mode='assoc'){ $result=self::result($sql); $row_arr=array(); 如果($mode=='assoc'){ 而($row=$result->fetch_assoc())$row\u arr[]=$row; } elseif($mode=='row'){ 而($row=$result->fetch_row())$row_arr[]=$row; } $result->close(); 返回$row_arr; }
使用。

MySQLND表示本机驱动程序

PHP脚本语言具有三种不同的“扩展”来连接MySQL服务器。PHP术语“扩展”与MySQL术语“连接器”和“驱动程序”类似,请查看MySQL参考手册了解详细信息。存在以下扩展:

  • ext/mysql
  • ext/mysqli
  • PDO_MYSQL
所有PHP MySQL扩展都是PHP源代码的一部分。源代码和二进制文件可从获取。PHP手册和MySQL参考手册都包含使用哪个扩展的详细文档


比您拥有的更快?它有多快?慢吗?你做过任何分析吗?mysqli中没有一个方法可以做吗?不知道,你看过文档了吗?如果您使用的是本机驱动程序,则似乎存在()。因为这似乎是一个RTFM问题,这意味着它仅在mysqlnd中可用?“由于mysqli_fetch_all()在一个步骤中以数组的形式返回所有行,因此它可能比一些类似的函数(如mysqli_fetch_array())消耗更多内存,一次只从结果集中返回一行。此外,如果需要对结果集进行迭代,则需要一个将进一步影响性能的循环构造。出于这些原因,mysqli_fetch_all()只应在获取的结果集将发送到另一层进行处理的情况下使用。”这应该是对我答案的评论。请删除它并将注释添加到我的答案中,否则我将在5分钟内对此进行标记。但我无法进行注释。
$myarray=$arr
应该是
$myarray[]=$arr
,否则$myarray将被覆盖,我想这与clarkk在其示例中显示的情况相同。不要这样认为。这是错误的,你测试过了吗?它将返回后一行。。。
function returnMeArray(){
    $q = mysql_query("your query");
    $myarray = array();
    while ($arr = mysql_fetch_array($q)) {
        $myarray = $arr;
    }
    return $myarray;
}