好的我确定可以做到这一点我在这篇文章中看到了类似的东西 Updating multiple rows in MySQL
所以我需要确定的是我会如何为自己做出准备。我有一个数据库,列出了工作人员的主要位置以及其他相关的办公地点。我希望能够更新包含单个工作人员信息的表格,但我不知道我需要循环多少次。
所以说我有莎莉,她与圣保罗和芝加哥的两个办公地点有联系。然后我有彼得只与纽约有联系。
表格如下
莎莉
主键101
LocationID 1
StaffID 1
PrimaryLoc 1
主键102
位置ID 2
StaffID 1
PrimaryLoc 0
我知道插入一个就是
UPDATE loc_tbl SET locationID=%s, PrimaryLoc=%s WHERE staffID=%s
所以,如果我想循环这个,我会像这样使用for循环吗? ...是用于从几个文本框中提取内容的部分。
for($i=$totalRows; $i>=0;$i--){
UPDATE loc_tbl SET locationID=%s, PrimaryLoc=%s WHERE staffID=%s ....
}
或者有更好的方法吗?
答案 0 :(得分:0)
MySql不支持您引用的帖子中所述的多个查询:mysql_query()发送唯一查询(不支持多个查询)。
当您在phpmyadmin中删除,添加或更新时,它会使用多个查询执行此操作,为什么我们应该做任何不同的操作? sql可以执行100,000次查询/秒! 参考:http://yoshinorimatsunobu.blogspot.co.uk/2010/10/using-mysql-as-nosql-story-for.html
我假设您将从表单数组中向此处抛出数据?
$id = ('101','201','301');
$users = array('sally','john','james');
$office = array('Bristol','Bath','London');
$assistant = array('John','Ellen','Richard');
$count = count($users);
for($i=0; $i<$count; $i++) {
$query = "UPDATE table SET
user = '$users[$i]',
assistant = '$assistant[$i]',
office = $office[$i],
WHERE id = '$id[$i]'";
mysqli_query($link, $query);
}
这对我有用,并且会在几分之一秒内完成。