您好,可参考如下思路,然后结合自己的业务逻辑即可:
创新互联公司是一家集网站建设,西固企业网站建设,西固品牌网站建设,网站定制,西固网站建设报价,网络营销,网络优化,西固网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
?php
//首先链接数据库
$conn = mysql_connect('主机名','数据库登陆用户名','数据库登陆密码') or die('链接数据库失败');
//选择数据库
mysql_select_db( 'test',$conn );
//假设test数据库中有文章表,article,表有字段 id,title,create_time 那么可采用如下代码循环读出里面数据
//进行SQL查询-查询article中的数据并按照id倒序排列
$sql = 'SELECT *FROM article ORDER BY id DESC';
//获取执行结果
$result = mysql_query( $sql,$conn );
if( !$result ) die( '执行SQL语句失败' );
//循环读出结果集中的数据
while( $row = mysql_fetch_assoc( $result ) )
{
//输出数据
echo $row['id'].'--'.$row['title'].'--'.$row['create_time'].'br/';
}
//如果test中有三条数据,比如下列数据
//id title create_time
//1 文章标题1 2014/10/31 14:20
//2 文章标题2 2014/11/01 15:12
//3 文章标题3 2014/11/03 12:10
//那么执行代码后,网页应显示如下:
//3--文章标题3--2014/11/03 12:10
//2--文章标题2--2014/11/01 15:12
//1--文章标题1--2014/10/31 14:20
?
有两种情况, 一是 php可运行的最大时间是不是有设置. 虽然你加了set_time_limit(0). 但很有可能没设置成功,因为php有安全模式, 你可以修改php.ini
2是系统资源不够, 可能是php宕了或者 数据库宕了.
你用网页的方式,让人点击,服务器采集,简直是弱爆了。每个人的点击循环1000次,来个100人同时点,你要用的是普通的虚拟机就不行了。
最好是换种方式实现,不要通过网页进行采集。
可以非常简单的在数据库的表,创建一个采集队列,后台执行一个crontab的计划任务,去完成队列里的采集任务。
PHP要连接上百台或更多台服务器数据库的话,我想你还在是本地写一个数据专门来存放每一台服务器数据库的信息,然后用循环来连接,而每次连接一台服务然后把得到信息存在本地的数据库里,每隔30秒到50秒执行一次。时间长了,本地的数据库中就会有信息了,然后再读本地的数据库来统计
1W条数据量也不是特别大,那就直接读取,然后在foreach入库就可以了
如果数据量非常大的时候,那就分段读取,然后入库~
考虑到php超时,那就网页端打开,第一部分执行完,刷新页面,开始执行第二部分,依次进行...
当然,直接在命令行下执行也可以~
mysql的分页语句里面也有的啊:
select * from table limit 0,500;0表示从头开始读,读500条,
一般来说都是用变量去控制这两个值,
例如:表示当前页数的变量为: $currentPage,表示每页读多少条的变量为:$pageSize;
那么这个sql语句成了:
$sql = "select * from table limit." ($currentPage-1)*$pageSize.",".*$pageSize;
当然这之前要对$currentPage进行判断等,
当执行了这个sql语句之后,你可以用mysql_num_rows这个函数去判断一下你这一次取得的记录数实际上是多少,如果是小于500的话,那就是已经读取完啦!,这个思路,你自己想想吧
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款