Php 将数组作为单个提交发送到表
我是PHP新手。我正在尝试拆分我的数组(成功完成),并将它们作为单独的提交提交到我的MYSQL表中(通过FOR循环)。但是,使用下面的代码,它只提交数组中的最后一个对象。从而破坏了预期功能的整体目的。有谁能告诉我避免这种情况的方法吗Php 将数组作为单个提交发送到表,php,arrays,for-loop,mysqli,Php,Arrays,For Loop,Mysqli,我是PHP新手。我正在尝试拆分我的数组(成功完成),并将它们作为单独的提交提交到我的MYSQL表中(通过FOR循环)。但是,使用下面的代码,它只提交数组中的最后一个对象。从而破坏了预期功能的整体目的。有谁能告诉我避免这种情况的方法吗 $directives = "(John Doe, Directive, Time)(Jane Doe, Directive2, Time2)"; $action = explode("(" ,str_replace (")","",$directives)
$directives = "(John Doe, Directive, Time)(Jane Doe, Directive2, Time2)";
$action = explode("(" ,str_replace (")","",$directives));
for ($i = 0; $i < count($action); ++$i){
$newdata = explode("," , $action[$i]);
$name = $newdata[0];
$namesplit = explode(" " , $name);
$actiondo = $newdata[1];
$date = $newdata[2];
$sqlaction="INSERT INTO TABLE (Firstname, lastname, Description, Action, date)
VALUES
('$namesplit[0]','$namesplit[1]',' Directive','$actiondo','$date')";
}
$directives=“(约翰·多伊,指令,时间)(简·多伊,指令2,时间2)”;
$action=explode(“(”,str_replace(“)”,“,$directions));
对于($i=0;$i
每次循环迭代都会覆盖$sqlaction
中的查询,因此这没有用
您也不需要对每一行进行查询。您可以构建一个查询,允许通过单个查询插入所有行。大概是这样的:
$query = 'INSERT INTO TABLE (Firstname, lastname, Description, Action, date)
VALUES ';
for ($i = 0; $i < count($action); ++$i){
$newdata = explode("," , $action[$i]);
$name = $newdata[0];
$namesplit = explode(" " , $name);
$actiondo = $newdata[1];
$date = $newdata[2];
$query .= "('" . $namesplit[0] . "','" . $namesplit[1] . "'Directive','" . $actiondo . "','" . $date . "'),";
}
$query = rtrim(',', $query);
// not shown - execute query using $query
$query='插入到表中(Firstname、lastname、Description、Action、date)
价值观;
对于($i=0;$i
首先,您必须将实际将内容放入数据库的代码放入循环中,以便进行大量的单独提交。您的代码当前所做的只是反复设置相同的字符串。这就是为什么只插入最后一个
第二,你为什么不做一次插入呢?你知道,你可以有多个括号。像这样:
VALUES (x, y, z), (x2, y2, z2), (x3, y3, z3)
第三,你的设计只是自找麻烦,因为你对你的数据做了太多的假设。想象一下,在你的名单上有一个像“詹姆斯·厄尔·琼斯”这样的人。下面是它的运行方式:
$namesplit = explode(" ", 'James Earl Jones');
echo $namesplit[0]; // = James
echo $namesplit[1]; // = Earl
哦,现在他的名字只是“詹姆斯·厄尔”
为了避免这种情况,您必须在插入数据之前仔细检查数据,并且您确实需要考虑如果每次插入数据时都有额外的逗号或空格,会发生什么情况