Skip to main content

SQLite PHP:建立到SQLite数据库的连接

PHP默认包含SQLite扩展,因此无需执行任何配置即可使其与SQLite一起工作。

使用Composer设置PHP项目结构

首先,创建一个名为phpsqliteconnect的项目文件夹和另一个子文件夹app。app文件夹用于存储处理应用程序逻辑和数据库的所有类。

接下来,创建一个新的作曲家。包含以下代码的json文件:

{
"autoload": {
"psr-4": {
"App\\": "app/"
}
}
}

如果你不熟悉作曲家,你可以在这里查看。在PHP中,我们使用composer作为依赖关系管理的工具。composer允许您在我们的项目中声明库,并自动管理更新。

在composer文件中,将应用名称空间映射到/App文件夹。

然后,创建另一个子文件夹db来存储SQLite数据库文件。

之后,打开命令工具,导航到phpsqliteconnect,然后键入以下命令:

composer update

将显示以下消息:

>composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files

此外,Composer将创建名为vendor的新文件夹,如以下屏幕截图所示:

SQLite PHP Connect Project Structure

最后,创建一个名为index的文件。php,并添加以下代码:

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

从现在开始,如果你想使用app文件夹中的任何classé,你只需声明并使用它。

建立到SQLite数据库的数据库连接

首先,创建一个新的文件配置。php,并添加一个名为Config的新类,如下所示:

<?php

namespace App;

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

}

常量路径TO_SQLITE文件用于存储驻留在db文件夹中的SQLITE数据库文件的路径。

其次,创建一个新的SQLiteConnection。php文件并添加SQLiteConnection类,如下所示:

<?php
namespace App;

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

/**
* return in 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;
}
}

要建立到SQLite数据库的数据库连接,需要创建PDO类的新实例,并将连接字符串传递给PDO对象的构造函数。

假设SQLite数据库文件位于db文件夹中,则使用以下连接字符串:

sqlite:db/phpsqlite.db

因为您将sqlite数据库文件的路径存储在Config类中,所以只需使用它来构造连接字符串。

请注意,当PHP连接到一个不存在的SQLite数据库时,PHP将创建一个新的SQLite数据库文件。

$pdo用于存储pdo对象的实例。在connect()方法中,检查数据库连接是否已建立。如果没有,则创建PDO对象的新实例,否则返回PDO对象。

将所有类放置到位后,使用以下命令生成自动加载文件:

composer dump-autoload -o

要建立到SQLite数据库的连接,请在索引中使用以下代码。php文件:

<?php

require 'vendor/autoload.php';

use App\SQLiteConnection;

$pdo = (new SQLiteConnection())->connect();
if ($pdo != null)
echo 'Connected to the SQLite database successfully!';
else
echo 'Whoops, could not connect to the SQLite database!';

SQLite PHP Connection example

如果检查db文件夹,您将看到一个名为phpsqlite的文件。数据库创建。

SQLite PHP Connect New SQLite File

创建PDO的新实例时,如果连接失败,它将始终引发PDO异常。

要处理异常,可以使用try-catch块,如下所示:

try {
$this->pdo = new \PDO("sqlite:" . Config::PATH_TO_SQLITE_FILE);
} catch (\PDOException $e) {
// handle the exception here
}

在本教程中,您学习了如何设置PHP项目结构并建立到SQLite数据库的数据库连接。