Примечание: попытка доступа к смещению массива по значению типа bool в строке XX - PullRequest
0 голосов
/ 18 июня 2020

Попытка получить доступ к смещению массива для значения типа bool в строке 88

Попытка получить доступ к смещению массива для значения типа bool в строке 91

Я отметил строк ниже, я попытался на всякий случай изменить запрос, но, похоже, он не работает. Я поискал его и не смог найти решения. Я также заметил, что все эти ответы были отклонены, но я новичок ie в PHP, поэтому я действительно не знаю, что искать. Я полагаю, что это что-то простое, но я просто смотрю не в то место. Почему так происходит? И как я могу это исправить?

$number = rand(pow(10, 11-1), pow(10, 11)-1);
$stmt = mysqli_prepare($db, "SELECT * FROM accounts WHERE email= ? OR number= ? LIMIT 1");
mysqli_stmt_bind_param($stmt, "ss", $email, $number);
mysqli_stmt_execute($stmt);

$user = mysqli_stmt_fetch($stmt);

function uniqueNum() {
    global $number;
    $number = rand(pow(10, 11-1), pow(10, 11)-1);
    if ($user['number'] === $number) {
        uniqueNum();
    }
}

if ($user) {
    if ($user['email'] === $email) { // Line 88
        array_push($errors, "E-Mail already exists");
    }
    if ($user['number'] === $number) { // Line 91
        uniqueNum();
    }
}

Любая помощь приветствуется! Мне 15 лет, и я только учусь заполнять регистрационные формы, поэтому с радостью выслушаю несколько дополнительных советов!

1 Ответ

1 голос
/ 18 июня 2020

Вы путаете PDO с mysqli. Mysqli намного сложнее, и mysqli_stmt_fetch фактически не возвращает никаких значений. Вы можете сделать это намного проще, если будете использовать стили get_result и OOP. Затем вы можете использовать, например, fetch_assoc(), чтобы получить одну строку из объекта результата.

$stmt = $db->prepare("SELECT * FROM accounts WHERE email= ? OR number= ? LIMIT 1");
$stmt->bind_param("ss", $email, $number);
$stmt->execute();
$user = $stmt->get_result()->fetch_assoc();

if($user) {
    if ($user['email'] === $email) {
        array_push($errors, "E-Mail already exists");
    }
    if ($user['number'] === $number) {
        uniqueNum();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...