十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
您好,可参考如下思路,然后结合自己的业务逻辑即可:
坚守“ 做人真诚 · 做事靠谱 · 口碑至上 · 高效敬业 ”的价值观,专业网站建设服务10余年为成都成都混凝土搅拌罐小微创业公司专业提供成都定制网页设计营销网站建设商城网站建设手机网站建设小程序网站建设网站改版,从内容策划、视觉设计、底层架构、网页布局、功能开发迭代于一体的高端网站建设服务。
?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
?
1W条数据量也不是特别大,那就直接读取,然后在foreach入库就可以了
如果数据量非常大的时候,那就分段读取,然后入库~
考虑到php超时,那就网页端打开,第一部分执行完,刷新页面,开始执行第二部分,依次进行...
当然,直接在命令行下执行也可以~
一般就两种情况:
1. 超出脚本内存限制
2. 超出脚本执行时间限制
试下下面这样:
set_time_limit(0);
ini_set('memory_limit', '1000M');//自己根据实际调整
你是cli模式还是cgi模式?cli模式不用设默认就是无时间限制,cgi默认是有30秒超时限制。
你可以先看看每次中断是固定时长,还是固定次数;也可以多打日志,每次循环都输出些参考参数如循环条件、内存使用等信息,再分析哪些可能导致程序中断的原因。
你用网页的方式,让人点击,服务器采集,简直是弱爆了。每个人的点击循环1000次,来个100人同时点,你要用的是普通的虚拟机就不行了。
最好是换种方式实现,不要通过网页进行采集。
可以非常简单的在数据库的表,创建一个采集队列,后台执行一个crontab的计划任务,去完成队列里的采集任务。
1.PHP基本上就是一种数组语言。时常要进行大量的数组循环操作,主要有两种方式,
一种是foreach,另一种是while,
代码如下:
foreach ($array as $value) {
echo $value;
}
while (list($key) = each($array)) {
echo $array[$key];
}
foreach ($array as $value) {
echo $value;
}
while (list($key) = each($array)) {
echo $array[$key];
}
2.在循环里进行的是数组“写”操作,则while比foreach快:
foreach ($array as $key = $value) {
echo $array[$key] = $value . '...';
}
while (list($key) = each($array)) {
$array[$key] = $array[$key] . '...';
}
foreach ($array as $key = $value) {
echo $array[$key] = $value . '...';
}
while (list($key) = each($array)) {
$array[$key] = $array[$key] . '...';
}