phel-lang / phel-pdo
phel-lang pdo 封装库。
v0.0.7
2024-06-24 15:13 UTC
Requires
- php: >=8.2
- phel-lang/phel-lang: ^0.15
README
phel-lang pdo 封装库。
描述
本质上,从 phel 代码中调用 PHP 类的功能非常简单。因此,直接使用 PDO 访问数据库并不困难。
然而,如果在编写 phel 代码时必须考虑 PHP 类,会存在一个问题,即 phel 世界和 PHP 世界的上下文切换,这将导致您无法专注于编写 phel 代码。
因此,我创建了一个封装库(phel-pdo),它可以通过调用 Phel 函数来处理 PDO。
安装
从 composer 安装。 https://packagist.org.cn/packages/phel-lang/phel-pdo
composer require phel-lang/phel-pdo
使用方法
这是一个连接到文件数据库、创建表、插入记录并在 repl 上搜索的示例。
phel:1> (require phel\pdo) phel\pdo phel:2> (require phel\pdo\statement) phel\pdo\statement phel:3> (def connection-string "sqlite:database.db") 1 phel:4> (def conn (pdo/connect connection-string)) 1 phel:5> (pdo/exec conn "create table t1 (id integer primary key autoincrement, name varchr(10))") 0 phel:6> (pdo/exec conn "insert into t1 (name) values ('phel'), ('php')") 2 phel:7> (def stmt (pdo/query conn "select * from t1 where id = 1")) 1 phel:8> (statement/fetch stmt) {:id 1 :name phel} phel:8> (def stmt (pdo/prepare conn "select * from t1 where id = :id")) 1 phel:9> (def stmt (statement/execute stmt {:id 1})) 1 phel:10> (statement/fetch stmt) {:id 1 :name phel}
参考
pdo
表示 PHP 与数据库服务器之间的连接。
begin
启动事务
(begin conn)
commit
提交事务
(commit conn)
connect
连接数据库并返回连接对象。如果尝试连接到请求的数据库失败,则抛出 PDOException
(connect dns & [username password options])
error-code
获取数据库句柄上最后操作关联的 SQLSTATE
(error-code conn)
error-info
获取数据库句柄上最后操作关联的扩展错误信息
(error-info conn)
exec
执行 SQL 语句并返回受影响的行数
(exec conn stmt & [fetch-mode])
get-attribute
检索数据库连接属性
(get-attribute conn attribute)
get-available-drivers
返回可用的 PDO 驱动程序数组
(get-available-drivers conn)
in-transaction
检查是否在事务中
(in-transaction conn)
last-insert-id
返回最后插入行的 ID 或序列值
(last-insert-id conn)
prepare
准备一个要执行的语句并返回一个语句对象
(prepare conn stmt & [fetch-mode])
query
准备并执行一个不包含占位符的 SQL 语句
(query conn stmt & [fetch-mode])
quote
将字符串引用用于查询
(query conn string & [type])
rollback
回滚事务
(rollback conn)
set-attribute
设置属性
(set-attribute conn attribute value)
statement
表示一个预处理语句,在执行语句之后,与关联的结果集。
bind-value
将值绑定到参数
(bind-value statement column value & [type])
debug-dump-params
返回 SQL 预处理命令
(debug-dump-params statement)
execute
执行预处理语句
(execute statement)
fetch
从结果集中获取下一行
(fetch statement)
fetch-all
从结果集中获取剩余的行
(fetch-all statement)
fetch-column
从结果集中返回下一行的单个列
(fetch-column statement & [column])
开发
打开外壳
docker compose build docker compose run --rm php_cli bash
测试
vendor/bin/phel test