好的,我确信这可以完成,我在这篇文章中看到了类似的内容 Updating multiple rows in MySQL
所以我需要确定的是我将如何为我自己编写它。我有一个数据库,其中列出了员工的主要地点以及其他相关的办公地点。我希望能够更新保存单个工作人员信息的表,但我不知道需要循环多少次。
假设我有 Sally,她与圣保罗和芝加哥的 2 个办公地点有关联。然后我有彼得,他只与纽约有关。
表格如下
给莎莉
主键101
位置ID 1
员工ID 1
主位置 1
主键102
位置ID 2
员工ID 1
主位置 0
对于彼得
主键103
位置ID 3
员工ID 2
主位置 1
我知道插入一个会
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 ....
}
或者有更好的方法吗?
最佳答案
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);
}
这对我来说很有效,并且会在不到一秒的时间内完成。
关于php - 更新多行mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19084951/