Неустранимая ошибка PHP: необработанное исключение PDO: SQLSTATE [HY000] - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь подключиться к базе данных SQLite, используя php для страницы входа. Я хочу сравнить введенные «имя пользователя» и «пароль» на странице входа в систему с данными, хранящимися в базе данных, и, если они совпадают, перенаправить на новую страницу (welcome.php). Мой код:

<?php
class MyDB extends SQLite3 {
  function __construct() {
     $this->open('test.db');
  }
}
$db = new MyDB();
if(!$db) {
  echo $db->lastErrorMsg();
} else {
  echo "Opened database successfully\n";
}
include('config.php');
$username = $_POST['Username'];
$password = $_POST['Password'];
$db = new PDO('sqlite:db/test.db');
$stmt = $db->prepare("SELECT * FROM login where username='$username' &&   password='$password]'");
$stmt->execute(array($username, $password));
if($stmt->fetchAll()){
    ?>
    <script type="text/javascript">
    window.location="welcome.php";
    </script>
    <?php
}
else {
    ?>
    <script type="text/javascript">
    alert("incorrect username or password");
    </script>
    <?php
}

После запуска этого кода я получаю пустую страницу validate.php, на которой написано «База данных успешно открыта». Файл журнала ошибок на сервере apache показывает это сообщение:

[Fri Sep 07 12:13:17.037251 2018] [:error] [pid 16529] [client      192.168.0.110:44534] PHP Fatal error:  Uncaught PDOException: SQLSTATE[HY000]   [14] unable to open database file in /var/www/html/validate.php:16\nStack  trace:\n#0 /var/www/html/validate.php(16):  PDO->__construct('sqlite:db/test....')\n#1 {main}\n  thrown in /var/www  /html/validate.php on line 16, referer: http://192.168.0.110/

Может кто-нибудь сказать мне, где я иду не так?

...