SQLite3 не может извлекать столбцы - PullRequest
0 голосов
/ 13 февраля 2020

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

Вот мой код:

<?php
$db  = new SQLite3("FirstDatabase.db");

if (isset($_POST['login'])) {
    $username = $_POST['user'];
    $password = $_POST['pass'];

    $query = $db->prepare("SELECT COUNT(`id`) FROM data WHERE `username` = '$username' AND `password` = '$password'");
    $query->execute();

    $count = $query->fetchColumn();

    if($count = 1){
        echo "Welcome $username!";
    } else {
        echo "Wrong credentials";
    }
}

?>

Я действительно запутался, почему это не работает .. Я обновил все расширения et c. Я знаю, что это уязвимо почти для всех типов атак, но я просто пытаюсь выяснить соединение с базой данных SQLite3.

Спасибо! :)

Это ошибка, которую я получаю, кстати:

Неустранимая ошибка: необработанная ошибка: вызов неопределенного метода SQLite3Stmt :: fetchColumn () в C: \ XAMPP \ htdocs \ PHP -Login \ index. php: 41 Трассировка стека: # 0 {main} добавлено в C: \ XAMPP \ htdocs \ PHP -Login \ index. php в строке 41

1 Ответ

0 голосов
/ 13 февраля 2020

SQL уязвим для инъекции SQL, что может иметь разрушительные последствия для вашей базы данных, вашей системы и вашего здоровья. Прежде всего, вы должны изменить выбор на параметризованный запрос.

В do c есть очень хорошие примеры для использования параметризованного запроса и привязки значений, не говоря уже о тонне ресурса на этом сайте.

Ошибка говорит вам, что не существует метода fetchColumn() для SQLite3Stmt объекта. PHP: SQLite3Stmt do c подтверждает это. Это метод расширения базы данных PDO.

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