我如何优化此代码?
$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 项目?
感谢。
答案 0 :(得分:4)
你可以使用mulitvalue插入语句
insert into mytable(item) values('item1'),('item2') etc
答案 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
}
}