我有一个包含两个字段的查找表,每个字段都是一个PRIMARY KEY。当我尝试用PHP更新表时,它似乎可以工作,但不会更新。phpMyAdmin中的相同查询(没有准备好的部分)工作正常。
我的PHP是:
$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代码(这项工作)如下:
$sql = "UPDATE `model_laser` SET `model_id`= 1,`laser_id`= 27 WHERE model_id = 1 AND laser_id = 17";
谢谢你对我失踪的东西的帮助。
这似乎是您准备好的参数。你需要区分你正在更新的内容和你的数据库中已经存在的内容
我认为它应该看起来像这样:
$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();
您的查询有两个不同的数字:laser_id。一个27岁,一个17岁。这可能是一个打字错误,或者是一个完全不同的问题。
$sql = "UPDATE `model_laser` SET `model_id`= 1,`laser_id`= 27 WHERE model_id = 1 AND laser_id = 17";