那个开销大 查询数据库, 用while($row = mysql_fetch_array()){.....} ,如果改成一个方法,while($row = mysql_fetch_array()){$arr = $row} 然后return $arr; 再去foreach($arr as $val) 这样应该会开销大点吧?不过比较简洁。可是我现在查询数据库语句都差不多,我不想每个页面都去写差不多的sql语句,集成到一个方法好不好!!?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以. 如果你的循环内处理不复杂,很快,那么一次两次都差不多.如果你的循环内处理复杂,那么两次循环有可能更好 ( 这个有人会想不通 )因为将sql的部分快速处理完,可以将数据库连接释放给其他进程使用, (你fetch的时候是hold住连接的)这样总体上更有效率. 当然这样在两个循环之间,你需要一个数组保存查询结果,内存会稍稍多占一会,但是一般不会影响太大 给一个函数你,只要将SQL语句扔给它就会将全部记录输出了function QueryArray($query,$result_type=MYSQL_ASSOC) { $array = array(); $result = mysql_query($query); $rows = mysql_num_rows($result); for($i=0;$i<$rows;$i++) { $array[$i]=mysql_fetch_array($result,$result_type); } @mysql_free_result($result); return $array; } +1 这个效率不简单比一次循环节省多少,或者更多但是从n个php进程同时连接mysql来说,1个php进程大了,但是减少了n-(mysql当前连接最大数)-1个进程等待数据库处理的时间 PHP 5.4.11 and PHP 5.3.21 released! 相当与ASP中的函数instr 我的公司的项目里没有数据库文件 php如何执行一个url 不知道能否实现以这种方式的变量值传送? 编译PHP源码的时候碰到一个百度不到谷歌不到的问题。。求大神相助 请教一个关于FCKeditor2.0 的一个问题 关于PHP文件操作的一些问题?高分,急! php 中 ado 的問題,請大家一起來解決!!! 请问各位大神,千万级商品量网站用什么系统好, 关于preg_match_all匹配的正则表达式问题 数据库用的UTF-8,为什么无法添加韩文?
因为将sql的部分快速处理完,可以将数据库连接释放给其他进程使用, (你fetch的时候是hold住连接的)
这样总体上更有效率.
当然这样在两个循环之间,你需要一个数组保存查询结果,内存会稍稍多占一会,但是一般不会影响太大
function QueryArray($query,$result_type=MYSQL_ASSOC) {
$array = array();
$result = mysql_query($query);
$rows = mysql_num_rows($result);
for($i=0;$i<$rows;$i++) {
$array[$i]=mysql_fetch_array($result,$result_type);
}
@mysql_free_result($result);
return $array; }
+1 这个效率不简单比一次循环节省多少,或者更多
但是从n个php进程同时连接mysql来说,1个php进程大了,但是减少了n-(mysql当前连接最大数)-1个进程等待数据库处理的时间