Php mysql结果到数组
向数组生成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
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
比您拥有的更快?它有多快?慢吗?你做过任何分析吗?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;
}