php mysqli if语句

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

因此,我只是做了一个简单的电子邮件验证测试/学习的目的,但我不能找出什么是错误的。问题是:

查询有效。。它会更新我的表中的字段,但只有当它处于活动状态=0时才应该这样做。所以,基本上,即使active=1,它仍然是echo的“成功”,它应该不能查询,因为它只应该抓取active=0的位置。。。这有意义吗?来看看

<?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秒