Выберите два разных столбца из одной строки, используя два разных запроса - PullRequest
0 голосов
/ 15 марта 2020

Я хочу выполнить два запроса одновременно в функции для проверки имени пользователя и электронной почты отдельно при регистрации. Если один из них уже существует в базе данных, он вернет правильное сообщение об ошибке в форме. Я исследую их отдельно, чтобы они могли быть связаны с двумя отдельными сообщениями на основе запроса. Если имя пользователя уже существует в базе данных, отобразите соответствующее сообщение. Если я помещу их в один запрос, то отдельное расследование не может быть выполнено.

Моя ошибка: она не позволяет выполнить два запроса одновременно и выдает следующую ошибку: возникла проблема с предыдущим параметром. Или возвращает неверное значение.

function pl($connection) {
    $query = "SELECT username FROM users WHERE username = ?";
    $query2 = "SELECT email FROM users WHERE email = ?";

    if ($statment = mysqli_prepare($connection, $query) && $statment2 = mysqli_prepare($connection, $query2)) {
        mysqli_stmt_bind_param($statment, "s", $_POST['usern']);
        mysqli_stmt_execute($statment);
        $result = mysqli_stmt_get_result($statment);
        $record = mysqli_fetch_assoc($result);

        mysqli_stmt_bind_param($statment2, "s", $_POST['email']);
        mysqli_stmt_execute($statment2);
        $result2 = mysqli_stmt_get_result($statment2);
        $record2 = mysqli_fetch_assoc($result2);
    }
    if ($result != null) {
        echo "succes";
        //it will enter even if there is an error
    }
}

Как можно решить, чтобы выполнить два mysqli_prepare() одновременно?

1 Ответ

1 голос
/ 15 марта 2020

Почему вы не используете один запрос? Что-то вроде:

$query = "SELECT username, email FROM users WHERE username = ? and email = ?";
$statment = mysqli_prepare($connection, $query);
mysqli_stmt_bind_param($statment, "ss", $_POST['usern'], $_POST['email']);
mysqli_stmt_execute($statment);
$result = mysqli_stmt_get_result($statment);
$record = mysqli_fetch_assoc($result);

if (!$record) {
    echo "succes";
    //it will enter even if there is an error
}

также вы пропустите } в конце вашего первого if

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