多次插入单个数据集mysql

时间:2014-04-23 08:59:24

标签: php mysql

我必须多次插入一组数据,比如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' )";
}

这是正确的方法..

1 个答案:

答案 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查询文本然后然后我们将执行它一次通过。