下面我来详细讲解一下“PHP实现的简单操作SQLite数据库类与用法示例”:
什么是SQLite数据库
SQLite 是一种软件库,实现了一个自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不同,您无需在系统中配置或管理 SQLite。SQLite 的使用非常适合嵌入式设备以及占用资源较少的应用程序。
PHP中操作SQLite数据库的步骤
在 PHP 中操作 SQLite 数据库需要经过以下三个步骤:
- 首先,需要打开一个 SQLite 数据库连接;
- 然后,需要执行 SQL 语句,查询/更新/删除数据;
- 最后,需要关闭数据库连接。
基于PHP实现的简单操作SQLite数据库类
-
定义一个类,命名为SQLiteDB,该类包含以下方法:
-
__construct($db_file):构造方法,传递数据库文件的名称,并创建一个 SQLite 数据库连接;
- query($query):执行 SQL 查询并返回结果集;
- exec($query):执行没有返回值的 SQL 语句;
- last_insert_id():返回最后插入的自增长 ID;
- __destruct():析构方法,关闭打开的 SQLite 数据库连接。
具体代码实现请见下文示例。
示例一:创建SQLite数据库,插入数据并查询
首先,我们需要在 PHP 中创建一个 SQLite 数据库连接,并且创建一个表格。以下代码演示了如何创建一个名为“test.db”的数据库,并在其中创建一个名为“users”的表格。
<?php
class SQLiteDB {
private $db;
function __construct($db_file) {
$this->db = new SQLite3($db_file);
}
public function query($query) {
$result = $this->db->query($query);
return $result->fetchArray();
}
public function exec($query) {
return $this->db->exec($query);
}
public function last_insert_id() {
return $this->db->lastInsertRowID();
}
function __destruct() {
$this->db->close();
}
}
// 实例化SQLiteDB类,传递数据库文件名
$db = new SQLiteDB('test.db');
// 创建users表格
$db->exec("CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT
)");
// 插入一条记录
$db->exec("INSERT INTO users(name, email) VALUES('Tom', 'tom@example.com')");
// 查询刚刚插入进去的记录名字
$result = $db->query("SELECT name FROM users WHERE id=1");
echo 'Name: ' . $result[0] . "\n";
// 释放SQLiteDB连接
unset($db);
?>
以上代码能够创建一个 SQLite 数据库,并在其中创建一个名为“users”的表格。然后,它插入了一个包含姓名和电子邮件地址的记录。最后,从“users”表中查询具有 ID 为 1 的用户的姓名。从上面的输出中,您可以看到输出的是“Tom”。这证明创建了数据库,并能进行查询。
示例二:使用SQLite的预处理语句插入数据
在 SQLite 数据库中使用预处理语句插入数据,可有效阻止 SQL 注入攻击。以下是一个 SQLite 数据库的 PHP 类,它将演示如何使用 SQLite 的预处理语句插入数据。
<?php
class SQLiteDB {
private $db;
function __construct($db_file) {
$this->db = new SQLite3($db_file);
}
public function query($query) {
$result = $this->db->query($query);
return $result->fetchArray();
}
public function exec($query) {
return $this->db->exec($query);
}
public function last_insert_id() {
return $this->db->lastInsertRowID();
}
public function prepare($query) {
return $this->db->prepare($query);
}
function __destruct() {
$this->db->close();
}
}
// 实例化SQLiteDB类,传递数据库文件名
$db = new SQLiteDB('test.db');
// 用预处理语句插入记录
$insert_query = $db->prepare("INSERT INTO users(name, email) VALUES (?, ?)");
$insert_query->bindValue(1, 'Tom');
$insert_query->bindValue(2, 'tom@example.com');
$insert_query->execute();
// 查询刚刚插入进去的记录名字
$result = $db->query("SELECT name FROM users WHERE id=2");
echo 'Name: ' . $result[0] . "\n";
// 释放SQLiteDB连接
unset($db);
?>
以上代码可以创建 SQLite 数据库中的一个名为“users”的表格。接着,可以使用预处理语句将两个变量插入新记录中。最后,从“users”表中查询具有 ID 为 2 的用户的姓名。与前面的示例相比,这个示例使用了预处理语句,这些语句可以有效地阻止 SQL 注入攻击。
以上就是“PHP实现的简单操作SQLite数据库类与用法示例”的详细攻略,希望对您有帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP实现的简单操作SQLite数据库类与用法示例 - Python技术站