更新多行mysql

时间:2013-09-30 00:44:20

标签: php mysql sql

好的我确定可以做到这一点我在这篇文章中看到了类似的东西 Updating multiple rows in MySQL

所以我需要确定的是我会如何为自己做出准备。我有一个数据库,列出了工作人员的主要位置以及其他相关的办公地点。我希望能够更新包含单个工作人员信息的表格,但我不知道我需要循环多少次。

所以说我有莎莉,她与圣保罗和芝加哥的两个办公地点有联系。然后我有彼得只与纽约有联系。

表格如下

莎莉 主键101
LocationID 1 StaffID 1 PrimaryLoc 1

主键102
位置ID 2 StaffID 1 PrimaryLoc 0

彼得 主键103
位置ID 3 StaffID 2 PrimaryLoc 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  ....
    }

或者有更好的方法吗?

1 个答案:

答案 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);
}

这对我有用,并且会在几分之一秒内完成。