php - 更新多行mysql

标签 php mysql sql

好的,我确信这可以完成,我在这篇文章中看到了类似的内容 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/

相关文章:

python - 使用元组的 Python 列表将多行插入数据库

php - 如何向带有外键的表中插入数据?

php - 在 MySQL 的 WHERE EXISTS 查询中使用选定的列

mysql - 在sql中按一定数量对行进行分组

mysql - 获取sql中所有重复的行

php - 如何将多行数据转换为数组并从另一个数组中减去它?

javascript - 重定向时通过其他页面上的 url 调用 javascript 函数

php - 每日/每周/每月高分

php - fatal error 内存不足从 mysql 数据库中获取数据

sql - PSQL - double 类型的无效输入语法 : "null";