Overview
(前言)
PHP PDO方式操作Sqlite实例
Environment
(运行环境)
extension=php_pdo_sqlite.dll
Function
(功能) - CURD操作实例
Example
(实例)
创建数据库
# Create (connect to) database in file
# (创建数据库文件)
$pdo = new PDO('sqlite:php_sqlite_pdo.db');
会自动生成php_sqlite_pdo.db文件,文件名和后缀可根据需求修改
创建表
# Create table user
# (创建表)
$pdo->exec("CREATE TABLE IF NOT EXISTS user (
id INTEGER PRIMARY KEY,
name TEXT,
time TEXT)");
创建一张user表,字段为id,name,time
插入数据
# Insert data
# (插入数据)
# 方式1
$sql = "INSERT INTO user (name, time) VALUES (:name, :time)";
$stmt = $pdo->prepare($sql);
$name = 'sunshine1';
$time = date('Y-m-d H:i:s');
$stmt->bindParam(':name', $name);
$stmt->bindParam(':time', $time);
$stmt->execute();
# 方式2
$sql = "INSERT INTO user (name, time) VALUES (:name, :time)";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':name', 'sunshine2');
$stmt->bindValue(':time', date('Y-m-d H:i:s'));
$stmt->execute();
# 方式3
$sql = "INSERT INTO user (name, time) VALUES (:name, :time)";
$stmt = $pdo->prepare($sql);
$stmt->execute([':name' => 'sunshine3', ':time' => date('Y-m-d H:i:s')]);
# 方式4
$sql = "INSERT INTO user (name, time) VALUES (?, ?)";
$stmt = $pdo->prepare($sql);
$stmt->execute(['sunshine4', date('Y-m-d H:i:s')]);
# 方式5
$sql = "INSERT INTO user (name, time) VALUES ('sunshine5', '" . date('Y-m-d H:i:s') . "')";
$pdo->exec($sql);
这里插入方式有多种,使用绑定方式PDO会自动处理SQL注入等安全问题
更新数据
# Update data
# (更新数据,参考插入多种方式)
$sql = "UPDATE user SET name = :name WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->execute([':name' => 'sunshine1_updated', ':id' => 1]);
删除数据
# Delete data
# (删除数据)
$sql = "DELETE FROM user WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->execute([':id' => 2]);
查询数据
# Select data
# (查询数据)
$sql = "SELECT * FROM user";
print_r($pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC));
清空数据
# Truncate data
# (清空数据)
$sql = "DELETE FROM sqlite_sequence WHERE name = 'user'";
$pdo->exec($sql);
$sql = "DELETE FROM user";
$pdo->exec($sql);
Expansion
(扩展)
调整PDO连接方式和创建表的SQL语句,可操作Mysql等其他数据库引擎,PDO基本语法通用
Code
(源码)
https://github.com/sunshinexcode/SqliteExample
Author
(作者)
sunshine
|