php - 如何获取更新以仅影响一行(PHP/MySQL)

标签 php mysql

这是我的查询:

$student_id = 34;
$user_id = 1;
$lesson_id = 25;

$query = ("UPDATE lessons SET 
assigned='1',
student_id='$student_id'
WHERE user_id='$user_id'
AND lesson_id='$lesson_id'")

我正在尝试运行更新以仅影响一行。我有一个这样的表:

_____________________________________
user_id|lesson_id|assigned|student_id
_______|_________|________|__________
1      |16       |1       |12
_______|_________|________|__________
1      |25       |0       |0
_______|_________|________|__________
1      |25       |0       |0
_______|_________|________|__________
1      |7        |1       |34
_______|_________|________|__________
1      |13       |1       |12
_______|_________|________|__________
1      |13       |0       |0
_______|_________|________|__________

当我执行此更新时,我发现所有匹配的行都已更新。因此,如果我尝试根据 Lesson_id 25 进行更新,两行都会发生变化。我只需要为每个查询更改一个。

我尝试将 LIMIT 1 添加到查询中,但它只允许我执行一次。我返回表单并再次将所有信息提交给查询,但它没有第二次执行。我觉得这很奇怪。

那么,我错过了什么?

最佳答案

尝试使用:

$query = ("UPDATE lessons SET 
    assigned='1',
    student_id='$student_id'
    WHERE user_id='$user_id'
    AND lesson_id='$lesson_id'
    AND assigned ='0' LIMIT 1");

关于php - 如何获取更新以仅影响一行(PHP/MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17548971/

相关文章:

php - 如何将图像发布到数据库列并在页面上显示?

PHP MYSQL 寻找一种方法来对特定列中具有相同值的行进行分组

php - 我从哪里传递 id 来删除记录?

php - 如果我在 PHP 中执行 print_r,它会以垃圾形式打印数组

php - 下载 csv 文件

php - 没有提交按钮的下拉列表。如何?

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

MySQL 将 12 小时添加到时间字段

php - 获取具有共同 parent 的所有行

javascript - 如何使用 php 将动态文本框值插入到同一 ID 上的数据库表中?