如何一次从文本区域向数据库插入许多记录,而不是一个接一个地插入它们,因为如果你有很多记录需要很长时间
1 - 以这种方式将数据写入文本区域
#fname-1980-74
#sname-1994-84
#lname-1990-54
2 - 每行将作为独立记录插入数据库
3 - 这是您必须使用的最佳代码和必须缺少的代码:
$txt = "#fname-1980-74#sname-1994-84#lname-1990-54";
foreach (explode('#' , $txt) as $line) {
echo $line = str_replace('-' , ',' , $line);
}
我对所有人的问候。
答案 0 :(得分:0)
<?php
$txt = "@fname-1980-74#@sname-1994-84#@lname-1990-54#";
// strip first @ and last #
$txt = substr($txt, 1);
$txt = substr($txt, 0, strlen($txt) - 1);
$values = array();
$parts = explode('#@', $txt);
foreach ($parts as $part) {
list($name, $year, $number) = explode('-', $part);
$values[] = "($name, $year, $number)";
}
$query = "
INSERT INTO mytable(name, year, number) VALUES
" . implode(',', $values) . ";";
echo $query;
答案 1 :(得分:0)
代码:
$txt = "@fname-1980-74#@sname-1994-84#@lname-1990-54#";
foreach ( explode( '#', $txt ) as $line ) {
$line = str_replace( '@' , '' , $line );
if ( empty( $line ) ) continue;
echo '(' . implode( ',', explode( '-', $line ) ) . ')'.PHP_EOL;
}
输出:
(fname,1980,74)
(sname,1994,84)
(lname,1990,54)