PHP:PDO 操作 SQLite3 数据库
在 PHP 中,可以使用 PDO(PHP Data Objects)来操作 SQLite3 数据库。以下是详细的步骤和示例:
一、连接到 SQLite3 数据库
1. 使用 PDO 的构造函数来创建连接。连接字符串的格式为sqlite:数据库文件名。
try {
$pdo = new PDO('sqlite:my_database.db');
echo "Connected to SQLite database successfully.";
} catch (PDOException $e) {
echo "Connection failed: ". $e->getMessage();
}
二、执行查询操作
1. 查询数据:
使用query()方法执行 SQL 查询语句,并返回一个PDOStatement对象。可以使用fetch()或fetchAll()方法从结果集中获取数据。
$stmt = $pdo->query('SELECT * FROM users');
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
if ($results) {
foreach ($results as $row) {
echo "ID: ". $row['id']. ", Name: ". $row['name']. "<br>";
}
} else {
echo "No results found.";
}
2. 插入数据:
使用prepare()和execute()方法来插入数据。可以使用占位符(如?或命名参数)来传递参数。
$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':name', $name);
$stmt->bindParam(':email', $email);
$name = "John Doe";
$email = "john@example.com";
$stmt->execute();
echo "New record inserted successfully.";
3. 更新数据:
类似插入数据,使用prepare()和execute()方法更新数据。
$sql = "UPDATE users SET email = :newEmail WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':newEmail', $newEmail);
$stmt->bindParam(':id', $id);
$newEmail = "updated_email@example.com";
$id = 1;
$stmt->execute();
echo "Record updated successfully.";
4. 删除数据:
使用prepare()和execute()方法删除数据。
$sql = "DELETE FROM users WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':id', $id);
$id = 1;
$stmt->execute();
echo "Record deleted successfully.";
三、预处理语句和参数绑定
1. 防止 SQL 注入:
PDO 的预处理语句可以有效地防止 SQL 注入攻击。通过将 SQL 语句和参数分开处理,确保参数的值不会被解释为 SQL 代码。
例如,使用占位符?进行参数绑定:
$sql = "INSERT INTO users (name, email) VALUES (?,?)";
$stmt = $pdo->prepare($sql);
$stmt->execute([$name, $email]);
或者使用命名参数进行参数绑定:
$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':name', $name);
$stmt->bindParam(':email', $email);
$stmt->execute();
四、错误处理
1. 异常处理:
PDO 默认使用异常来处理错误。可以使用try-catch块来捕获数据库操作中的异常。
try {
$sql = "SELECT * FROM non_existent_table";
$stmt = $pdo->query($sql);
} catch (PDOException $e) {
echo "Error: ". $e->getMessage();
}
五、事务处理
1. 开启事务:
使用beginTransaction()方法开启一个事务。在事务中,可以执行多个数据库操作,如果其中一个操作失败,可以回滚到事务开始之前的状态。
try {
$pdo->beginTransaction();
// 执行多个数据库操作
$sql1 = "INSERT INTO table1 (column1, column2) VALUES (?,?)";
$stmt1 = $pdo->prepare($sql1);
$stmt1->execute([$value1, $value2]);
$sql2 = "UPDATE table2 SET column3 =? WHERE id =?";
$stmt2 = $pdo->prepare($sql2);
$stmt2->execute([$newValue, $id]);
// 提交事务
$pdo->commit();
echo "Transaction completed successfully.";
} catch (PDOException $e) {
// 回滚事务
$pdo->rollBack();
echo "Error: ". $e->getMessage();
}
使用 PDO 操作 SQLite3 数据库可以提供更安全、高效和可移植的方式来处理数据。通过正确使用连接、查询、预处理语句、错误处理和事务处理,可以确保你的 PHP 应用程序与 SQLite3 数据库的交互更加稳定和可靠。
PHP编程语言基础
- PHP:从入门到工作的教程
- PHP:从入门到工作的学习路线
- PHP:精通PHP需要学习哪些技术
- PHP:精通PHP可以从事什么工作
- PHP:不同操作系统下搭建PHP服务器
- PHP:XAMPP各组件功能配置
- PHP:变量的定义与命名规则
- PHP:内置的数据类型
- PHP:基本运算符、赋值运算符
- PHP:数学运算符
- PHP:关系运算符、逻辑运算符
- PHP:字符串运算符
- PHP:按位运算
- PHP:三目、太空船、Null 合并运算符
- PHP:逗号运算符(,)
- PHP:输出HTML代码
- PHP:流程控制语句
- PHP:数组
- PHP:函数
- PHP:处理Web表单
- PHP:浏览器处理功能
- PHP:文件操作
- PHP:目录操作
- PHP:面向对象编程
- PHP:数据库操作(MySQLi)
- PHP:数据库操作(PDO)
- PHP:数据库操作(SQLite)
- PHP:PDO 操作 SQLite3 数据库
- PHP:处理Excel表
- PHP:处理PDF文件
- PHP:图像处理
- PHP:绘制图形
- PHP:MP3文件信息处理
- PHP:数码相片信息处理
- PHP:正则表达式
- PHP:站内搜索引擎
- PHP:伪静态处理
- PHP :AJAX动态的网页交互
- PHP:浏览者身份验证
- PHP:加密函数库
- PHP:手机短信发送
- PHP:邮件发送
- PHP:数学运算函数库
- PHP:字符串处理函数库
- PHP:日期/时间函数库
- PHP:常用算法
- PHP:异常处理
- PHP:代码优化
- PHP:缓存技术
- PHP:服务器优化
- PHP:主流框架
- PHP:项目管理
- 网站开发流程
- PHP:Web开发的脚本语言
- HTML:超文本标记语言
- HTML5:超文本标记语言
- CSS:层叠样式表
- CSS3:层叠样式表
- HTML5 + CSS3 网页布局设计
- JavaScript:网页脚本编程语言
- PHP:正则表达式解析HTML标签
- PHP:用内置类DOMDocument解析XML/HTML文档
- PHP:用SimpleXML解析XML/HTML文档
- PHP:用PHPQuery解析XML/HTML文档
- PHP:用QueryPath解析XML/HTML文档