我有一个名为buildTracker的数据表。 php表单发布要提交的数据以创建新的ID /行。这很有用。第二种形式提取现有行进行编辑 -
但是,它不是更新现有行,而是创建新行和新密钥(ID)
如何在不创建新行的情况下获取更新密钥?
$enteredBy = $conn->real_escape_string($_POST['enteredBy']);
$query = "INSERT into buildtracker (EnteredBy)
VALUES('" . $enteredBy . "')
ON DUPLICATE KEY UPDATE EnteredBy='" . $enteredBy . "'";
$success = $conn->query($query);
我在哪里更新了错误?
数据表行包括ID(键)和EnteredBy(文本)
答案 0 :(得分:2)
从它的外观来看,你的表buildTracker上有一个自动递增的键字段。如果你在桌子上做一个描述,我的猜测就是它会显示的内容。您插入日期的事实意味着自动增量将触发,您永远不会创建重复。如果你有EnteredBy作为主键,它应该总是更新$ enteredBy存在的位置。
答案 1 :(得分:1)
我猜你正在寻找update
。更新如下:
UPDATE buildtracker
SET EnteredBy = ?
WHERE <some column> = ?;
<some column> = ?
会识别要更新的行。你没有这个的唯一原因是表只包含一行。
使用?
表示您应该使用参数。您不应该使用输入值来设置查询字符串;您应该使用参数来避免意外的语法错误和SQL注入漏洞。