Проверьте, существует ли уже логин или нет в базе данных - PullRequest
0 голосов
/ 04 декабря 2018

Чего я хочу добиться: проверить, существует ли уже «имя» в одной из моих строк.

Проблема: он продолжает добавлять строки, даже если они уже существуют.

Я просматривал StackOverflow, но не нашел чего-то, что могло бы вызвать такую ​​же проблему.

Да, я проверил свой тип в mysqli_db, это VARCHAR (255).Таким образом, тип, который я передаю, является «строкой» (я использую подготовленные операторы).

Я уже проверил переменную $loginName, она также является правильной (как в правильной переменной, которую я передаю).

Я также проверил, сделал ли я опечатку в моем $sqli оператор, относящийся к таблице или строке (loginName), но оператор sqli правильный.

Как выглядит мой код:

include_once 'dbConn.php';
 $loginName = $_POST['loginName'];
 $userName = $_POST['userName'];
 $pwd = $_POST['pwd'];
 $confirmPWD = $_POST['confirmPWD'];

            $sqli = "SELECT * FROM registerandlogin WHERE loginName = ?";
            $stmt = mysqli_stmt_init($conn);

            if (!mysqli_stmt_prepare($stmt, $sqli)) {
                header('Location: index.php?prep=failed');
                exit();
            } else {
                mysqli_stmt_bind_param($stmt, 's', $loginName);
                $result = mysqli_stmt_get_result($stmt);
                $resultCheck = mysqli_num_rows($result);

                if ($resultCheck > 0) {
                    header('Location: index.php?loginName=taken');
                    exit();
                } else {
//do something else  
}

1 Ответ

0 голосов
/ 05 декабря 2018

Я забыл следующий фрагмент кода: mysqli_stmt_execute($stmt);.

Поэтому оператор if никогда не запускался.

Неправильно:

            mysqli_stmt_bind_param($stmt, 's', $loginName);
            $result = mysqli_stmt_get_result($stmt);
            $resultCheck = mysqli_num_rows($result);

Справа:

            mysqli_stmt_bind_param($stmt, 's', $loginName);
            mysqli_stmt_execute($stmt);
            $result = mysqli_stmt_get_result($stmt);
            $resultCheck = mysqli_num_rows($result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...