我必须多次插入一组数据,比如n行。
INSERT INTO MyTable VALUES ("John", 123, "US");
我可以在一个SQL语句中插入所有n行吗?
这里n
是动态值n是用户输入,如何进行n次插入查询,任何想法。
$sql = "INSERT INTO `mytable` VALUES(`field1`,`field2`,`field3`) VALUES ";
$count = 5;
for($i=0;$i<$coutn;$i++)
{
$sql .= " ('john','123','us' )";
}
这是正确的方法..
答案 0 :(得分:2)
是的,这可以轻松完成,看起来应该是这样的:
INSERT INTO MyTable VALUES ("John", 123, "US"), ("Carl", 123, "EU"), ("Jim", 123, "FR");
但是,在查询中指定表的列是一种很好的编程习惯,例如:
INSERT INTO MyTable (Column1, Column2, Column3)
VALUES ("John", 123, "US"), ("Carl", 123, "EU"), ("Jim", 123, "FR");
编辑:您可以像这样构建查询(在for
周期内),$total
是您的用户输入:
$sql = "INSERT INTO MyTable (Column1, Column2, Column3) VALUES";
//Build SQL INSERT query
for ($i = 1; $i <= $total; $i++) {
$sql .= " ($value1, $value2, $value3), ";
}
//Trim the last comma (,)
$sql = rtrim($sql,",");
//Now, the $sql var contains the complex query.
$result = mysql_query($sql);
正如您所看到我们不在循环中执行INSERT
语句,而是我们构建SQL查询文本然后然后我们将执行它一次通过。