php mysqli if заявление - PullRequest
       7

php mysqli if заявление

1 голос
/ 25 марта 2011

Итак, я просто проверяю электронную почту для целей тестирования / обучения, однако не могу понять, что не так. Вот проблема:

Запрос работает .. он обновляет поле в моей таблице, но он должен это делать, только если он активен = 0. Таким образом, в основном, это все еще "успех" эха, даже если active = 1, который он не должен иметь возможность запрашивать, потому что он должен только захватить WHERE 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();
?>

1 Ответ

3 голосов
/ 25 марта 2011

Запрос возвращает true, потому что запрос был выполнен очень хорошо, даже если он не влиял ни на какие строки. Он возвращает false только если запрос недействителен. Вы должны посмотреть на получение количества затронутых строк. (mysql_num_rows($query) например.)

Кроме того, вы должны использовать mysql_real_escape_string($getvalue) при использовании значений из $ _GET или $ _POST в своих запросах для предотвращения внедрения MySQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...