首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySql一次插入n行?

问MySql一次插入n行?
EN

Stack Overflow用户
提问于 2009-11-27 02:15:02
回答 3查看 1.8K关注 0票数 0

我如何优化这段代码?

代码语言:javascript
复制
$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个项?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-27 02:22:31

可以使用多值插入语句。

代码语言:javascript
复制
 insert into mytable(item) values('item1'),('item2') etc

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

票数 4
EN

Stack Overflow用户

发布于 2009-11-27 02:25:27

代码语言:javascript
复制
INSERT INTO `mytable` (`item`) VALUES ('value 1'), ('value 2'), ('value 3')

形成它使用

代码语言:javascript
复制
$t = array("value 1", "value 2", "value 3");

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

echo $query;

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

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

票数 1
EN

Stack Overflow用户

发布于 2009-11-27 02:25:58

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

在假设了10个值之后,我会运行一个insert。这样似乎不太可能失败,然后向MySQL发送一个可能的大型查询。

代码语言:javascript
复制
$query = '';

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

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



}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1806475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档