PHP MySql一次插入n行?

时间:2009-11-27 02:15:02

标签: php mysql

我如何优化此代码?

$items[0] = "Item-0";
$items[1] = "Item-1";
$items[2] = "Item-2";
$items[3] = "Item-3";
...
$items[n] = "Item-n";

foreach($items as $item) {
    mysql_query("INSERT INTO mytable (item) VALUES ('$item')");
}

数组只是示例,我想知道的关键点是如何在不查询 n 次的情况下插入 n 项目?

感谢。

3 个答案:

答案 0 :(得分:4)

你可以使用mulitvalue插入语句

 insert into mytable(item) values('item1'),('item2') etc

http://dev.mysql.com/doc/refman/5.1/en/insert.html

答案 1 :(得分:1)

INSERT INTO `mytable` (`item`) VALUES ('value 1'), ('value 2'), ('value 3')

使用

形成
$t = array("value 1", "value 2", "value 3");

$query = "('";
$query .= implode( "'), ('", $t);
$query .= "')";

echo $query;

输出('value 1'), ('value 2'), ('value 3')

现在您需要做的就是将原始查询粘贴到该输出中。

答案 2 :(得分:1)

user187291's answer是正确的,但我不会只构建一个大量的查询字符串。

在说出10个值之后,我会运行一个插入。似乎不太可能以这种方式失败,然后向MySQL发送可能的巨大查询

$query = '';

foreach($items as $key => $item) {

     if ($key % 10) {
        // Reset and insert
     }



}