如何从多个 $_POST 数组中插入 MYSQL 行
Posted
技术标签:
【中文标题】如何从多个 $_POST 数组中插入 MYSQL 行【英文标题】:How to insert into MYSQL row from multiple $_POST arrays 【发布时间】:2013-09-10 23:49:29 【问题描述】:我有一个带有“添加联系人”部分的表单,单击该部分后,它会在表单中添加另一行,其中包含另外 3 个输入框。 (jfiddle上的这段代码:http://jsfiddle.net/fmdx/cYxYP/)
<form method="post" action="">
<div style="padding-left:40px;">
<div id="customcopies" style="padding-left:40px;">
1. Name: <input type="text" id="copiestoname_1" name="copiestoname[]" placeholder="Jane Doe Smith" required>, Institution: <input type="text" id="copiestoinst_1" name="copiestoinst[]" placeholder="Bank" required>, Method: <input type="text" id="copiestomethod_1" name="copiestomethod[]" placeholder="Email" required>
</div>
</div>
<input type="submit" name="submit_val" value="Submit" />
</form>
if (isset($_POST['submit_val']))
foreach ($_POST['copiestoname'] as $key=>$value)
$copiestoname = mysql_real_escape_string($value);
mysql_query("INSERT INTO copiesto (name) VALUES ('$copiestoname')") or die(mysql_error());
echo "Completed";
echo "" . count($_POST['copiestoname']) . " Names Added<br>";
mysql_close();
数据库中的表是:
Table Name: copiesto
+-------------+-------------+-------------+---------+
| index | name | institution | method |
+-------------+-------------+-------------+---------+
如何扩展当前的 MYSQL 代码以接受来自其他 2 个数组的条目并在该循环期间将它们的数据输入到同一 MYSQL 行中?
【问题讨论】:
你有使用mysql_query
的理由吗?这是 1990 年代的遗留应用程序吗?
这是我从示例和教程中拼凑出来的代码,如果有点过时请见谅!
这个脚本有什么问题?
我想让 MYSQL 代码接受来自其他 2 个输入框数组的值,将每个数组中的 1 个值插入 mysql 数据库的行中。上面的代码只做第一个数组,但我没能成功扩展它以包含其他 2 个。
@fmdx 从教程中学习是学习 PHP 和 Web 开发的一种极其危险的方式,因为它会教给你各种危险的坏习惯。更好的解决方案是使用popular framework,这样您就可以从好的示例中学习,另外还可以使用社区开发的附加组件,这些附加组件无需定制即可嵌入您的应用程序。
【参考方案1】:
你可以用for循环代替
for ($i=0; $i < count($_POST['copiestoname']); $i++ )
$copiestoname = mysql_real_escape_string($_POST['copiestoname'][$i]);
$copiestoinst = mysql_real_escape_string($_POST['copiestoinst'][$i]);
$copiestomethod = mysql_real_escape_string($_POST['copiestomethod'][$i]);
mysql_query("INSERT INTO copiesto (name, institution, method) VALUES ('$copiestoname', '$copiestoinst', '$copiestomethod')") or die(mysql_error());
echo "Completed";
【讨论】:
我收到此错误:“列计数与第 1 行的值计数不匹配”以上是关于如何从多个 $_POST 数组中插入 MYSQL 行的主要内容,如果未能解决你的问题,请参考以下文章