PHP怎么一次向数据库插入多条数据?

字段如下:
id memid online
1 25 1
2 25 1
3 25 1
4 25 1
5 25 1
像上面的数据所示,怎么样一次性向数据库插入5条 同一个会员memid相同状态的数据?能不能用FOR语句实现控制,谢谢!
mysql_query("insert into table_name (memid,online) values ('25','1'),('25','1'),('25','1'),('25','1'),('25','1')");

像上面那个可以实现,不过问题是我要控制 Values 后面的条数,要插入几条可以自己控制,而不是手写上去。 我的数据是完全一样的,不用变换,只要控制要插入的条数就可以,请问怎么实现呢?

$value = '';
$query_num = 5; //插入数量
for($i=1;$i<=$query_num;$i++){
    $value .= "('25','1')";
}
//mysql insert有插入多条语法,拼接sql语句,table_name表名   
$sql = "insert into table_name (memid,online) values ".$value;
//执行,插入$query_num条数据
mysql_query($sql);

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-28
query 5次,php端循环处理。追问

这个也太复杂了吧,有没有代码!

追答

$query_num = 10; //可写入的次数,修改该值来决定写入次数。
for($i=1;$i<=$query_num;$i++){
mysql_query("insert into table_name (name,age) values ('name1','age1'),('name2','age2');
}

追问

如果这么说,是不是应该这样。VALUES只写一个就行。不然就变成,每次插入5条,再执行10,那不是变成50条了。这样做成变量(全局)行不行?
$query_num = 10; //可写入的次数,修改该值来决定写入次数。
$memid=25;
$linestae=1;
for($i=1;$i<=$query_num;$i++){
mysql_query("insert into table_name (memid,linestate) values ('$memid','$linestae');
}

追答

每次只能写入一条数据,那个循环功能就是实现多次写入。循环5次就写入5条记录。

追问

谢谢,问题已解决,你们的思路都差不多,可惜只能选一个最佳答案!不好意思,再次感谢!

第2个回答  推荐于2018-02-27
$query_num = 10; //可写入的次数,修改该值来决定写入次数。
for($i=1;$i<=$query_num;$i++){
mysql_query("insert into table_name (memid,online) values ('25','1')");
}

如果你想灵活控制写入的数据,可以这样做:
function insertvalues ($query_num, $values) {
for($i=1;$i<=$query_num;$i++){
mysql_query("insert into table_name (memid,online) values (".$values.")");
}
}

想插入10次('25','1'),则用insertvalues (10, “'25','1'”);
想插入12次('30','2'),则用insertvalues (12, “'30','2'”)。追问

谢谢你的思路实现了我的问题?我稍改了一下,你那好像少个参数!
function insertvalues ($query_num, $memid,$online) {
for($i=1;$i<=$query_num;$i++){
mysql_query("insert into dx_table (memid,online) values (".$memid.",".$online.")");
}
}
--------------------------------------
insertvalues (10, “'25','1'”);这样就可以了,非常感谢!

本回答被提问者和网友采纳