📅  最后修改于: 2023-12-03 15:33:31.326000             🧑  作者: Mango
SQLite是一款轻型关系型数据库管理系统,它的设计目标是嵌入式的,即程序和它的数据库可以同处于一个进程中。由于其体积小、运行速度快、功能强大,被广泛应用于移动设备、桌面应用程序和服务器端等各类应用场景。
PHP作为一种常用的Web编程语言,与SQLite集成可以使用轻便、高效的数据库管理方案。PHP内置基础SQLite API,可用于SQLite的基本操作,而使用PDO(PHP Data Object)可以更方便地进行高级操作。
本文将介绍如何在PHP中使用SQLite,包括创建数据库、数据表,以及查询、插入、修改和删除数据等基本操作。
在使用PHP SQLite之前,需要确保本地环境已经安装好PHP和SQLite扩展。
如果您使用的是Windows系统,建议使用WAMPServer或XAMPP等集成环境安装,这些工具包中已经预先安装好了PHP和SQLite扩展。
如果您使用的是Linux或Mac OS X等系统,可以使用系统自带的软件包管理器安装相应的软件。
例如,在Ubuntu中,可以使用如下命令安装PHP和SQLite扩展:
sudo apt-get install php php-sqlite3
接下来,需要创建一个SQLite数据库文件,用于存储数据。
可以使用如下命令在命令行下创建一个名为example.db
的SQLite数据库文件:
sqlite3 example.db
创建数据表之前,需要先连接到SQLite数据库。
可以使用如下代码连接到SQLite数据库:
<?php
// 创建数据库连接
$db = sqlite_open('example.db', 0666, $sqliteerror);
if (!$db) {
die("连接数据库失败: {$sqliteerror}");
}
// 关闭数据库连接
sqlite_close($db);
?>
首先,通过sqlite_open()
函数创建数据库连接,其中第一个参数是数据库文件名,第二个参数是文件权限,第三个参数用于输出错误信息。如果连接失败,则输出错误信息后退出程序。
接下来,使用sqlite_close()
函数关闭数据库连接。
PDO封装了PDO_SQLITE驱动程序,可以更方便地管理SQLite数据库。
可以使用如下代码连接到SQLite数据库:
<?php
// 创建数据库连接
try {
$db = new PDO("sqlite:example.db");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e){
die("连接数据库失败: " . $e->getMessage());
}
// 关闭数据库连接
$db = null;
?>
首先,通过new PDO()
函数创建数据库连接,参数是数据库文件名。使用setAttribute()
方法设置PDO属性,其中PDO::ATTR_ERRMODE
表示错误处理模式,PDO::ERRMODE_EXCEPTION
表示以异常方式处理。
接下来,使用$db = null
关闭数据库连接。
可以使用如下代码在SQLite数据库中创建一个数据表:
<?php
// 创建数据表
$sql = <<<EOD
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT,
gender TEXT,
age INTEGER
);
EOD;
try {
$db->exec($sql);
} catch (PDOException $e) {
die("创建数据表失败: " . $e->getMessage());
}
?>
其中,CREATE TABLE
语句用于创建数据表,IF NOT EXISTS
表示如果数据表已经存在,则不创建。数据表名为users
,包含id
、name
、age
等字段。
使用$db->exec()
函数执行SQL语句,如果出现异常,则输出错误信息后退出程序。
可以使用如下代码向SQLite数据库中插入一条数据:
<?php
// 插入数据
$sql = "INSERT INTO users (name, gender, age) VALUES (?, ?, ?)";
$stmt = $db->prepare($sql);
$name = '小红';
$gender = '女';
$age = 23;
try {
$stmt->execute([$name, $gender, $age]);
} catch (PDOException $e) {
die("插入数据失败: " . $e->getMessage());
}
?>
其中,INSERT INTO
语句用于插入数据,VALUES
后面跟着需要插入的字段值。
使用$db->prepare()
函数准备一个SQL语句模板,使用占位符代替字段值,然后使用$stmt->execute()
函数将占位符替换为实际的字段值进行插入。
如果出现异常,则输出错误信息后退出程序。
可以使用如下代码从SQLite数据库中查询数据:
<?php
// 查询数据
$sql = "SELECT * FROM users";
$stmt = $db->prepare($sql);
try {
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
die("查询数据失败: " . $e->getMessage());
}
// 输出查询结果
foreach ($result as $row) {
echo "{$row['name']} ({$row['gender']}, {$row['age']})\n";
}
?>
其中,SELECT
语句用于查询数据,*
表示查询所有字段。
使用$db->prepare()
函数准备一个SQL语句模板,然后使用$stmt->execute()
函数执行查询,使用$stmt->fetchAll()
函数获取查询结果。
最后,使用foreach
循环输出查询结果。
如果出现异常,则输出错误信息后退出程序。
可以使用如下代码修改SQLite数据库中的数据:
<?php
// 修改数据
$sql = "UPDATE users SET age = ? WHERE name = ?";
$stmt = $db->prepare($sql);
$age = 25;
$name = '小红';
try {
$stmt->execute([$age, $name]);
} catch (PDOException $e) {
die("修改数据失败: " . $e->getMessage());
}
?>
其中,UPDATE
语句用于修改数据,SET
后面跟着需要修改的字段和值,WHERE
后面跟着需要修改数据的条件。
使用$db->prepare()
函数准备一个SQL语句模板,使用占位符代替字段值和条件值,然后使用$stmt->execute()
函数将占位符替换为实际的字段值和条件值进行修改。
如果出现异常,则输出错误信息后退出程序。
可以使用如下代码从SQLite数据库中删除数据:
<?php
// 删除数据
$sql = "DELETE FROM users WHERE name = ?";
$stmt = $db->prepare($sql);
$name = '小红';
try {
$stmt->execute([$name]);
} catch (PDOException $e) {
die("删除数据失败: " . $e->getMessage());
}
?>
其中,DELETE FROM
语句用于删除数据,WHERE
后面跟着需要删除数据的条件。
使用$db->prepare()
函数准备一个SQL语句模板,使用占位符代替条件值,然后使用$stmt->execute()
函数将占位符替换为实际的条件值进行删除。
如果出现异常,则输出错误信息后退出程序。
以上就是使用PHP SQLite的基本操作示例,包括创建数据库、数据表,以及查询、插入、修改和删除数据等操作。使用SQLite的优点是体积小、运行速度快,适合嵌入式设备和轻量级应用场景。