我如何优化这段代码?
$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个项?
谢谢。
发布于 2009-11-27 02:22:31
可以使用多值插入语句。
insert into mytable(item) values('item1'),('item2') etc发布于 2009-11-27 02:25:27
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')
现在,您需要做的就是将原始查询插入到该输出中。
发布于 2009-11-27 02:25:58
user187291's answer是正确的,但是我不会仅仅构建一个庞大的查询字符串。
在假设了10个值之后,我会运行一个insert。这样似乎不太可能失败,然后向MySQL发送一个可能的大型查询。
$query = '';
foreach($items as $key => $item) {
if ($key % 10) {
// Reset and insert
}
}https://stackoverflow.com/questions/1806475
复制相似问题