php mysqli if语句
因此,我只是做了一个简单的电子邮件验证测试/学习的目的,但我不能找出什么是错误的。问题是: 查询有效。。它会更新我的表中的字段,但只有当它处于活动状态=0时才应该这样做。所以,基本上,即使active=1,它仍然是echo的“成功”,它应该不能查询,因为它只应该抓取active=0的位置。。。这有意义吗?来看看php mysqli if语句,php,mysqli,Php,Mysqli,因此,我只是做了一个简单的电子邮件验证测试/学习的目的,但我不能找出什么是错误的。问题是: 查询有效。。它会更新我的表中的字段,但只有当它处于活动状态=0时才应该这样做。所以,基本上,即使active=1,它仍然是echo的“成功”,它应该不能查询,因为它只应该抓取active=0的位置。。。这有意义吗?来看看 <?php $connection = new mysqli('localhost', 'user', 'pass', 'db'); if (mysqli_connect_err
<?php
$connection = new mysqli('localhost', 'user', 'pass', 'db');
if (mysqli_connect_errno()) {
printf("Can't connect to MySQL Server. Errorcode: %s\n",
mysqli_connect_error());
exit;
}
$email = $_GET['email'];
$activation = $_GET['hash'];
$query = $connection->query("UPDATE users SET active = '1' WHERE
email='".$email."' AND activationCode='".$activation."' AND active='0'");
if ($query){
echo "success";
} else {
echo "fail";
}
$connection->close();
?>
查询返回true,因为查询执行得很好,即使它不影响任何行。仅当查询无效时才返回false。您应该研究检索受影响行的数量。(mysql\u num\u rows($query)
例如。)
另外,在查询中使用$\u GET或$\u POST中的值时,应该使用mysql\u real\u escape\u string($getvalue)
,以防止mysql注入。我不确定问题是什么……这是一个有效的sql语句,它将始终返回trueOh,我想我假设只有在找到结果时才是真的。我该怎么做?谢谢。是否有一个mysqli等价于mysql\u num\u rows($query)?是的。执行查询后,只需调用$connection->impacted_rows
,即可获得行数。更多信息请参见。谢谢,伙计,我很感激。不客气。如果您的问题现在已解决,请选择此答案作为已接受答案。:)我抓到了,巴德,不得不等58秒