因此,当使用 WHERE 满足值时,我试图改变某些东西的状态
代码:
$insertstatus = $DBH->prepare("INSERT INTO
csvdata (status) VALUES ('$status') WHERE username = '".$username."'");
$insertstatus->execute();
不工作。如果你能帮我一把。
感谢您的时间!
如果要使用该where
子句,则需要使用更新。从外观上看,您无论如何都在尝试更新,因为您只使用表中的一列。
$insertstatus = $DBH->prepare("update
csvdata set status= '$status' WHERE username = '".$username."'");
$insertstatus->execute();
正如 PeeHaa 正确指出的那样,使用带参数的准备好的语句会稍微改变你的代码,对你来说是一个更好的选择。你可以这样做:
$sql="update csvdata set status=:status where username=:username";
$sth=$DBH->prepare($sql);
$sth->execute(array(':status' => $status, ':username' => $username));
这样您就可以准备语句,以便数据库知道会发生什么。execute()
然后,您通过数组中的函数将变量传递给数据库。