PHP通过foreach循环向数据库中写入表单项的值的疑问?

PHP通过foreach循环向数据库中写入表单项的值的疑问?,第1张

建议楼主把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

把复选框的值作为参数提交,作为循环的次数

$s1 = $_POST['s1']//获取样品数量

for($i = 1$i<=$s1$i++){

$tmp = $_POST['smp'.$i] //这里是对应循环中的文本框name属性

$sql = "insert into 表名(字段....) values('样品名',数量)"

mysql_query($sql,$conn)

}

这样写,能看明白么?

1W条数据量也不是特别大,那就直接读取,然后在foreach入库就可以了

如果数据量非常大的时候,那就分段读取,然后入库~

考虑到php超时,那就网页端打开,第一部分执行完,刷新页面,开始执行第二部分,依次进行...

当然,直接在命令行下执行也可以~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10012983.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存