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