我为我的登录和注册系统编写了一些代码。 在我的注册系统中,我已经包含了这段代码:
<?php
$sql3="UPDATE users SET
firstname='$firstname', lastname='$lastname',
password='$password',bio='$bio',
dob='$dob',gender='$gender'
?>
但是,当然,这只会更新users表中的所有行。 但是当我补充说:
<?php WHERE username=$username ?>
我会收到一个错误:你的SQL语法有错误;查看与您的MariaDB服务器版本对应的手册,以获得在&#39;&#39;附近使用的正确语法。在第1行。
让我说清楚,这不是一个错误问题,我知道问题是什么。我只是想知道如何解决我的代码问题,以便它不会更新整个表而不只是一个用户行。提前谢谢。
答案 0 :(得分:-1)
是的,他们确实有效。 WHERE
子句实际上会帮助您更新特定的行,否则它将更新表的所有行。
UPDATE TABLE_NAME SET COLUMN_NAME=<VALUE> WHERE COLUMN_NAME=<VALUE>;
因此,在username
子句中放置WHERE
之类的标识符列将避免更新所有行。
使用准备好的陈述
UPDATE users
SET firstname=?, lastname=?,password=?,bio=?, dob=?, gender=?
where username=?