所以我正在尝试构建一种更新电子邮件功能,应该将它放入db的部分看起来像这样
<?php $emailfrom = $_POST['emailfrom'];
$emailto = $_POST['emailto'];
$query = sprintf('UPDATE `users` SET `email`="%s" WHERE `email`="%s"`',
mysqli_real_escape_string($db, $emailfrom),
mysqli_real_escape_string($db, $emailto));
mysqli_query($db, $query);
问题是该行没有更新......我需要帮助才能知道为什么,因为我对mysql不太熟悉,主要使用其他dbs
答案 0 :(得分:1)
您的查询中出现语法错误。
\/
$query = sprintf('UPDATE `users` SET `email`= "%s" WHERE `email`= "%s"`',
mysqli_real_escape_string($db, $emailfrom),
mysqli_real_escape_string($db, $emailto));
mysqli_query($db, $query);
此外,您可能希望将电子邮件从emailFrom更改为emailTo,现在您正在以相反的方式进行操作。编辑后:
$query = sprintf('UPDATE `users` SET `email`= "%s" WHERE `email`= "%s"`',
mysqli_real_escape_string($db, $emailto),
mysqli_real_escape_string($db, $emailfrom));
mysqli_query($db, $query);
答案 1 :(得分:1)
接受的答案是有效的,但准备好的陈述会更安全
type
使用准备好的声明,您不必担心转义变量以防止SQL注入。