我有这个代码
<form action="" method="POST">
PIN:
<input type="text" name="pin"><br />
E-Mail:
<input type="text" name="email"><br />
<input type="submit" value="Claim" name="submit" />
</form>
<?php
if(isset($_POST["submit"])){
if(!empty($_POST['pin']) && !empty($_POST['email'])) {
$pin=$_POST['pin'];
$email=$_POST['email'];
$con=mysql_connect('localhost','root','admin') or die(mysql_error());
mysql_select_db('user_codevalidation') or die("cannot select DB");
$sql="INSERT INTO codes(email) VALUES('$email') WHERE pin='".$dbpin."'";
mysql_query($sql);
echo "Successfully claimed!";
{
while($row=mysql_fetch_assoc($query))
{
$dbpin=$row['pin'];
}
if($pin == $dbpin)
{
$sql="INSERT INTO codes(email,claimed) VALUES('$email','1') WHERE pin = $dbpin";
echo "Successfully claimed!";
}
} else {
echo "Invalid pin or it has already been claimed once!";
}
} else {
echo "All fields are required!";
}
}
?>
我希望能够验证 pin
并且如果 claimed = 0 在 $pin
行的数据库中,其中 pin
等于pin文本框$pin
中的值,如果相等则执行$sql
,将email中的值插入到sql中$email
这是电子邮件文本框,然后将 claimed
值更改为“1”,这在数据库中默认为 0。
我的一切正常,它显示“已成功领取!”但它不会改变我在数据库中的值。请帮忙!
编辑:我已经添加了执行 MySQL 查询,它仍然给我相同的结果!
最佳答案
没有查询执行命令mysql_query() 在查询之后添加这一行
mysql_query($sql);
关于PHP:如何更改 SQL 中验证的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31336777/