【发布时间】:2016-06-03 22:09:31
【问题描述】:
基本上我已经从pdf 文件中创建了一个字符串,并且该字符串包含逗号分隔的值,我现在需要将其插入到表中的不同列中。
我会尝试类似问题的答案here,但我没有得到它以满足我的需要。
我已经尝试将该字符串分解为一个数组,因此逗号是每个元素的分隔符,如下所示:
$array = explode(',', $text);
但由于表中只有 3 列,因此我需要将这些值排序到这些列中,以便每个第三个字符串都进入第一列,然后全部进入后续列。我试着这样做:
$duzina=count($array);
for($i=0;$i<$duzina;$i++) {
if ($i = 0 && $i < 3) {
$mysqli->query("INSERT INTO `test` (`name`, `surname`, `email`) VALUES
(
'" . trim($array[$i]) . "',
'" . addslashes($array[$i + 1]) . "',
'" . addslashes($array[$i + 2]) . "'
)
");
}
if ($i/3 == 0) {// has found a 3rd,6th,9th element of an $array
$mysqli->query("INSERT INTO `test` (`name`, `surname`, `email`) VALUES
(
'" . trim($array[$i]) . "',
'" . addslashes($array[$i + 1]) . "',
'" . addslashes($array[$i + 2]) . "'
)
");
} else {
$mysqli->query("INSERT INTO `test` (`name`, `surname`, `email`) VALUES
(
'" . trim($array[$i]) . "',
'" . addslashes($array[$i + 1]) . "',
'" . addslashes($array[$i + 2]) . "'
)
");
}
但它所做的只是插入$array 的前三个元素。请帮忙
【问题讨论】:
-
将 $i/3 == 0 转换为 $i%3 == 0
-
如果你使用
$i += 3而不是$i++,你可能只需要1个插入块并且根本不需要条件。不过,我必须查看数据才能确定...
标签: php mysql arrays sql-server string