📜  PHP SQLite示例(1)

📅  最后修改于: 2023-12-03 15:33:31.326000             🧑  作者: Mango

PHP SQLite示例

简介

SQLite是一款轻型关系型数据库管理系统,它的设计目标是嵌入式的,即程序和它的数据库可以同处于一个进程中。由于其体积小、运行速度快、功能强大,被广泛应用于移动设备、桌面应用程序和服务器端等各类应用场景。

PHP作为一种常用的Web编程语言,与SQLite集成可以使用轻便、高效的数据库管理方案。PHP内置基础SQLite API,可用于SQLite的基本操作,而使用PDO(PHP Data Object)可以更方便地进行高级操作。

本文将介绍如何在PHP中使用SQLite,包括创建数据库、数据表,以及查询、插入、修改和删除数据等基本操作。

环境设置

在使用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 API连接数据库

可以使用如下代码连接到SQLite数据库:

<?php
// 创建数据库连接
$db = sqlite_open('example.db', 0666, $sqliteerror);
if (!$db) {
  die("连接数据库失败: {$sqliteerror}");
}

// 关闭数据库连接
sqlite_close($db);
?>

首先,通过sqlite_open()函数创建数据库连接,其中第一个参数是数据库文件名,第二个参数是文件权限,第三个参数用于输出错误信息。如果连接失败,则输出错误信息后退出程序。

接下来,使用sqlite_close()函数关闭数据库连接。

使用PDO连接数据库

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,包含idnameage等字段。

使用$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的优点是体积小、运行速度快,适合嵌入式设备和轻量级应用场景。