【发布时间】:2019-08-29 01:07:49
【问题描述】:
所以我在一个 php 文件中有一个 sql 语句,它与从用户那里获取输入的表单相关。当他们输入一种类型时,它会更新该列中的所有记录,而不是他们选择的特定记录。
我得到的原始语句是第一个代码,但它编辑了整个列。所以我一直在尝试其他子句,所以它只改变了匹配的album_id但没有任何运气的子句。 Sample Table data
$sql = "UPDATE album
SET genre_id = (SELECT genre_id
FROM genre
WHERE genreName='" . $_POST['lstGenre'] . "'
)";
以上是我开始并继续返回的内容。 Result from code above changes genre in entire column
$sql = "UPDATE album
SET genre_id = (SELECT genre_id
FROM genre
WHERE genreName='" . $_POST['lstGenre'] . "'
)
FROM album
WHERE album_id='" . $_POST['album_id'] . "'";
这是我尝试过的一个版本,但它没有更新任何内容。 这就是我要找的: Different genre for each case
我解决了这个问题:
$sql = "UPDATE album
SET genre_id = (SELECT genre_id
FROM genre
WHERE genreName='" . $_POST['lstGenre'] . "'
)
FROM album
WHERE album_id='" . $thisAlbum['album_id'] . "'";
【问题讨论】:
-
您至少能解释一下缺少的内容,而不是仅仅发布。我已经解释了这个问题。显示了导致问题的代码以及我尝试解决问题的尝试之一。
-
样本表数据和预期结果会有很大的改进。
-
你应该阅读SQL injection。
-
用您正在使用的数据库标记您的问题!