如果我使用where子句,没有插入数据的where子句,我有一个不插入的查询。这很奇怪,我在WAMP之前从未见过它
$key=substr(md5(rand(0, 1000000)), 0, 5)
;
$key1="INSERT INTO login(key_id) VALUES('$key')
WHERE (email_id = '" . mysql_real_escape_string($_POST['email_id']) . "')"
if(mysql_query($key1))
{
$message = 'User Added!.';
echo "<SCRIPT>
alert('$message');
location='forgotpassword.php';
</SCRIPT>";
}
如果我回显$_POST['email_id']
,它确实会返回有效结果
答案 0 :(得分:7)
INSERT和WHERE不要混用。 INSERTing时,您正在创建新记录。 WHERE用于SELECTING DELETEing或UPDATEing,当你必须指定一个过滤器,你想要SELECT,DELETE或UPDATE行。
如果要插入行,请不要使用WHERE。 如果要更改行,请使用
$key1="UPDATE login SET key_id = '$key' WHERE
(email_id = '" . mysql_real_escape_string($_POST['email_id']) . "')";
答案 1 :(得分:1)
Insert
仅用于创建新记录,where
子句仅在想要设置与select
,update
,{{delete
, $key1="update login set key_id ='$key' WHERE
(email_id = '" . mysql_real_escape_string($_POST['email_id']) . "')";
一起使用的任何条件时使用1}}。
试试这会有所帮助: -
create trigger tgTriggerName after delete
on Table1
begin
delete from Table2 where ID in (old.stringIDs);
end
答案 2 :(得分:0)
我知道@ Franz-Gleichmann已经解释得非常好,你的代码中有什么不对。
您需要使用UPDATE
来更新数据修改代码:
$key1 = "UPDATE login SET key_id = '$key' WHERE
(email_id = '" . mysql_real_escape_string($_POST['email_id']) . "')";
现在我又增加了两点:
mysqli_*
或PDO
,因为mysql_*
已被弃用且在PHP 7中不可用。