PDO Получить один столбец из запроса выбора - PullRequest
0 голосов
/ 09 ноября 2018

Я пытаюсь получить столбец из запроса select, но получаю эту ошибку

Notice: Trying to get property of non-object 

SQL

$row = $conn->query("SELECT * from user where name='".$username."' and password='".$password."'");
$row->setFetchMode(PDO::FETCH_ASSOC);
$row->execute();
$results = $row->fetchAll();
$count = $row->rowCount();

$get_user_role = $row["name"];
echo $get_user_role;

1 Ответ

0 голосов
/ 09 ноября 2018

Как я понял, вы хотите получить одну строку из этого SQL-запроса, и, взглянув на свой код, вы делаете fetchAll, который возвращает либо false, либо массив результатов с указателем, который затем должен использоваться в цикле, то есть while.

Я бы сделал это немного по-другому (, и я познакомлю вас с подготовленными утверждениями ):

$row = $conn->query("SELECT * from user where name = :name and password = :password;");
$row->setFetchMode(PDO::FETCH_ASSOC);
$row->execute([
    'name' => $username,
    'password' => $password
]);
$result = $row->fetch();

if($result !== false) {
    $count = $row->rowCount(); 

    $get_user_role = $result["name"];
    echo $get_user_role;
} else {
    echo 'User not found or does not exist.';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...