如何使用php将多个记录从文本插入mysql数据库

时间:2014-10-24 11:42:50

标签: php

如何一次从文本区域向数据库插入许多记录,而不是一个接一个地插入它们,因为如果你有很多记录需要很长时间

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); }

我对所有人的问候。

2 个答案:

答案 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)