0

我试图允许用户使用 PHP 表单添加新记录并更新 MySQL 数据库中的现有字段。

我已经构建了表单,用户可以添加新记录,但是当我修改 $add 函数以使用 UPDATE 而不是 INSERT INTO 时,它使用已输入到表单中的值来更新所有记录,而不仅仅是已编辑的一个。

完整代码在这里: http: //pastebin.com/s0TBUYgK

我尝试将第 20 行的 INSERT INTO 查询替换为的 UPDATE 查询是:

$add = "UPDATE albums SET name = '$name', artist = '$artist', year = '$year'";
4

2 回答 2

0

您没有where条款将更新限制为仅被编辑的一条记录,例如..

UPDATE albums SET .... WHERE id=$id;
                       ^^^^^^^^^^^^

请记住,sql 往往是那种“你指定的越少,你得到的越多”的东西。

考虑到这种基本错误,我猜你也没有对 、 和 中的数据进行任何$name清理$artist和转义$year,这意味着你的代码容易受到SQL 注入攻击

于 2013-10-24T18:43:36.617 回答
0

您应该指定id.

$add = "UPDATE albums SET name = '$name', artist = '$artist', year = '$year' WHERE `id`='$id'";

在您的表格上添加:

<input type="text" name="id" value="<?php echo $id; ?>" />

然后在处理帖子时

$id = $_POST['id'];
于 2013-10-24T18:44:28.047 回答