Trying to create PHP CRUD DB web app using Data Objects, but I'm getting 'unable to open database file'

Viewed 14

Here is my code:

index.php

<?php
require 'vendor/autoload.php';

use App\SQLiteConnection;

// $pdo = (new SQLiteConnection())->connect();
$pdo = new PDO('sqlite:/db/DeviceAssetRegister.db');
if ($pdo != null)
    echo 'Connected to the SQLite database successfully!';
else
    echo 'Whoops, could not connect to the SQLite database!';

autoload.php

<?php

// autoload.php @generated by Composer

if (PHP_VERSION_ID < 50600) {
    echo 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
    exit(1);
}

require_once __DIR__ . '/composer/autoload_real.php';

return ComposerAutoloaderInitac49802da6c0989a03e8477df9311d10::getLoader();

config.php

<?php

namespace App;

class Config {
   /**
    * path to the sqlite file
    */
    const PATH_TO_SQLITE_FILE = 'db/DeviceAssetRegister.db';

}

SQLiteConnection.php

<?php
namespace App;

/**
 * SQLite connnection
 */
class SQLiteConnection {
    /**
     * PDO instance
     * @var type 
     */
    private $pdo;

    /**
     * return an instance of the PDO object that connects to the SQLite database
     * @return \PDO
     */
    public function connect() {
        if ($this->pdo == null) {
            $this->pdo = new \PDO("sqlite:" . Config::PATH_TO_SQLITE_FILE);
        }
        return $this->pdo;
    }
}

Someone gave me this script to check SQLIte, and it passes both tests:

<?php var_dump(extension_loaded('sqlite3')); 

var_dump(class_exists('SQLite3'));

Here is the full error in VSC:

PHP Fatal error:  Uncaught PDOException: SQLSTATE[HY000] [14] unable to open database file in D:\DOWNLOADS\CODE\phpsqliteconnect\index.php:7  
Stack trace:  
#0 D:\DOWNLOADS\CODE\phpsqliteconnect\index.php(7): PDO->__construct()  
#1 {main}  
  thrown in D:\DOWNLOADS\CODE\phpsqliteconnect\index.php on line 7  

Any help please? I already have all my CRUD pages written and ready to go; I just need to finally make that DB connection! TIA

0 Answers
Related