首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更新MySQL两列查找表,其中每个字段都是主键

如何更新MySQL两列查找表,其中每个字段都是主键
EN

Stack Overflow用户
提问于 2016-01-07 20:27:52
回答 2查看 103关注 0票数 1

我有一个带有两个字段的查找表,每个字段都是一个主键。当我尝试用PHP更新表时,它看起来很有效,但没有更新。phpMyAdmin中相同的查询(没有准备好的部分)可以正常工作。

我的PHP是:

代码语言:javascript
复制
$sql = "UPDATE model_laser SET 
            model_id = :model_id,
            laser_id = :laser_id
            WHERE model_id = :model_id AND laser_id = :laser_id";

$s = $db->prepare($sql);
$s->bindValue(':model_id', $model_id);
$s->bindValue(':laser_id', $laser_id);
$s->execute();

phpMyAdmin使用数字1和27给出了php代码(这是可行的),如下所示:

代码语言:javascript
复制
$sql = "UPDATE `model_laser` SET `model_id`= 1,`laser_id`= 27 WHERE model_id = 1 AND laser_id = 17";

谢谢你对我缺少的东西的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-07 21:25:25

看来是你准备好的对讲会。您需要将正在更新的内容与数据库中已经存在的内容区分开来。

我觉得应该是这样的:

代码语言:javascript
复制
$sql = "UPDATE model_laser SET 
        model_id = :new_model_id,
        laser_id = :new_laser_id
        WHERE model_id = :model_id AND laser_id = :laser_id";

$s = $db->prepare($sql);
$s->bindValue(':new_model_id', $new_model_id);
$s->bindValue(':new_laser_id', $new_laser_id);
$s->bindValue(':model_id', $model_id);
$s->bindValue(':laser_id', $laser_id);
$s->execute();
票数 2
EN

Stack Overflow用户

发布于 2016-01-07 20:47:02

您的查询对于:laser_id有两个不同的编号。一个是27,一个是17。这可能是一个错误,或者完全不同的问题。

代码语言:javascript
复制
$sql = "UPDATE `model_laser` SET `model_id`= 1,`laser_id`= 27 WHERE model_id = 1 AND laser_id = 17";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34664535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档