大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
利用PHP对数组赋值时下标变量会自动递增的特点,可以很方便用循环将数据存入一个数组。例如:$arr[] = 'a'; 这条语句会将字符a存入数组变量$arr中,如果$arr不存在则会新建一个;若已存在,则将$arr数组的下标变量递增1后存入字符。也就是说,如果已有$arr[0]='a', 那么执行 $arr[] = 'b'; 后,数组其实是进行了$arr[1] = 'b' 的操作。
创新互联专注于企业成都全网营销、网站重做改版、桃城网站定制设计、自适应品牌网站建设、H5网站设计、商城网站定制开发、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为桃城等各大城市提供网站开发制作服务。
?php
$arr = array(
0 = 1100,
1 = '天津市',
2 = 2210,
3 = '沈阳市'
);
$sql = '';
foreach ($arr as $k = $v) {
if ($k % 2 == 0) {
$no = $v;
continue;
} else {
$city = $v;
}
echo "INSERT INTO tablename (no, city) VALUES ($no, $city)";
}
?
结果:
INSERT INTO tablename (no, city) VALUES (1100, 天津市)
INSERT INTO tablename (no, city) VALUES (2210, 沈阳市)
sql语句已经输出的,你query下就行,按照自己的数据套吧.
上面那个回答运行不怎么对
1W条数据量也不是特别大,那就直接读取,然后在foreach入库就可以了
如果数据量非常大的时候,那就分段读取,然后入库~
考虑到php超时,那就网页端打开,第一部分执行完,刷新页面,开始执行第二部分,依次进行...
当然,直接在命令行下执行也可以~
php模板循环中,最常见的循环就是foreach了,简单高效使php程序里大量运用了foreach,这里我们就模板里的循环进行解说。在php模板中,循环被改装成对称的loop 和 /loop 模式,代码:
!-- loop from=$rslist key=$key value=$value [id=rslist_id] --
...
!-- /loop --
参数解析:
from,数据来源
key,给数组下标附一个变量
value,值
id,给数组from里信息增加属性,这里提供了三个属性
num,当前数量,从1开始计起
index,当前索引,从0开始计起
total,当前数组数量
示例1:在文章列表中常用到的循环
!-- loop from=$rslist key=$key value=$value --
lia href="{$value.url}" title="{$value.title}"span class="date"{func date Y-m-d $value.dateline}/span{$value.title}/a/li
!-- /loop --
先检查一下你的数据库操作是否放在循环体里面。如果是在循环里面再检查一下你的表结构中各字段的约束是否有唯一。
你这样的循环插入库效率不高,可以把 values拼接起来,然后一次性插入。
建议楼主把SQL语句显示出来,自然就明白问题在哪里了,我试着简单说一下,假设你的USER数据表有三个字段(name、age、sex),_POST提交数据也是这三个字段的,假设POST的值分别是abc、18、男,那么帖子的PHP会执行下面的三个SQL语句:
INSERT INTO USER(name) VALUES(abc)
INSERT INTO USER(age) VALUES(18)
INSERT INTO USER(sex) VALUES(男)
现在明白了吧,一、三两句会语法错误,英文没有在文本字段添加引号,第二句即使执行成功插入的记录只有年龄,姓名、性别为空,如果数据库有限制字段有效性,那么第二句插入也会失败,数据库需要的语句是:
INSERT INTO USER(name,age,sex) VALUES('abc',18,'男')
如果理解了,自然会下面这样写PHP语句:
$sql=END
INSERT INTO USER(name,age,sex)
VALUES('{$_POST['name']}',{$_POST['age']},'{$_POST['sex']}')
END;