Почему эхо не возвращает идентификатор после запроса SQL в php? - PullRequest
0 голосов
/ 02 октября 2018

У меня есть следующий код в некоторых php:

$stmt = $connection->prepare("SELECT * FROM users where email = ?");
$stmt->bind_param('s', $email);
if($stmt->execute()){
    $result = $stmt->get_result();
    $isUserFound = $result->num_rows == 1;
    if(isUserFound){
        $row = $result->fetch_row();
        echo "<br>id: " . $row["id"];
}

Я знаю, что пользователь найден, потому что код внутри второго if выполняется, и я также проверил ручную проверку, чтобы убедиться.Что-то не так с синтаксисом, который я использовал?Эхо возвращает просто «id:» без идентификатора из базы данных, даже если пользователь существует.

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

1 Ответ

0 голосов
/ 02 октября 2018

Согласно документации , fetch_row() используется для "получения строки результата в виде перечисляемого массива".Это приведет к массиву, подобному этому:

$row = [
    0 => "2342",
    1 => "user@example.com",
    2 => "User",
];

Вместо используйте fetch_assoc(), который "извлечет строку результата как ассоциативный массив" и даст вам что-то вроде этого:

$row = [
    "id" => "2342",
    "email" => "user@example.com",
    "name" => "User",
];

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

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