上面有个地方写错了...下面是对的:<?php
set_time_limit(0);
require("conn.php");
$q1 = mssql_query("select id,data from chuli");
for($i = 1;$i <= mssql_num_rows($q1);$i++)
{
@mssql_data_seek($q1,$i);
$data = @mssql_fetch_array($q1);
preg_match_all("/[0-9]{1,10}包/",$data[1],$bao);
$baoshu = 0;
for($j = 0; $j <count($bao[0]); $j++)
$baoshu += intval(substr($bao[0][$j], 0, -1));
$q2 = mssql_query("update chuli set baoshu = $baoshu where id = $data[0]");
}
set_time_limit(60);
?>
set_time_limit(0);
require("conn.php");
$q1 = mssql_query("select id,data from chuli");
for($i = 1;$i <= mssql_num_rows($q1);$i++)
{
@mssql_data_seek($q1,$i);
$data = @mssql_fetch_array($q1);
preg_match_all("/[0-9]{1,10}包/",$data[1],$bao);
$baoshu = 0;
for($j = 0; $j <count($bao[0]); $j++)
$baoshu += intval(substr($bao[0][$j], 0, -1));
$q2 = mssql_query("update chuli set baoshu = $baoshu where id = $data[0]");
}
set_time_limit(60);
?>
解决方案 »
- 自动获取当前天气温度 php js实现的都可以
- 一个IP多个站点配置问题
- 如何禁止别人访问模板目录下的htm文件?
- php在windows下面能发邮件吗?mail函数能用吗?
- 散分?
- php常量在另一个类中引用问题,高手帮帮忙啊~
- thinkphp会员登录密码验证md5问题。
- 如题在adodb.php中有没有一个方法可以返回 update语句,影响的行数
- 解决项目报错后,自动跳转hao123页面的烦人问题
- sphinx的一个bug?在sphinxClient API没办法检索数据
- mysql> set sql_mode=""问题
- 求个正则的查询: 查询包含指定字符串“ABCD”,且不包含字符“/”的写法 谢谢!
如果不是的话~在MySQL内先过滤一次
这样的sql语句,不慢才怪呢.
要分段分次取.太没有效率了.
还是一次全取出来,然后每批处理100个,处理后把这100个id和$baoshu累加的写入txt文件里,结果130多万条15秒左右就处理完了,得到一个20M的txt文件,导入数据库,花了两三分钟吧。
set_time_limit(0);
require("conn.php");
$fp = fopen("getbaoshu.txt",'a');
$q1 = mssql_query("select id,data from chuli");for($i = 0;$i < mssql_num_rows($q1)/100;$i++)
{
$txt = "";
for($j=0; $i<100; $i++)
{
mssql_data_seek($q1, $j + $i*100);
$data = mssql_fetch_array($q1);
preg_match_all("/[0-9]{1,10}包/",$data[1],$bao);
$baoshu = 0;
for($k = 0; $k <count($bao[0]); $k++)
$baoshu += intval(substr($bao[0][$k], 0, -1));
$txt .= $data[0]."\t".$baoshu."\r\n";
}
fwrite($fp,$txt);
}
set_time_limit(60);
?>
这句话多余
另外用括号括起来,直接取$bao[1]就可以,不用substr