phel-lang/phel-pdo

phel-lang pdo 封装库。

安装: 6

依赖项: 0

建议者: 0

安全: 0

星标: 4

关注者: 3

分支: 0

开放问题: 0

语言:Dockerfile

v0.0.7 2024-06-24 15:13 UTC

This package is auto-updated.

Last update: 2024-08-25 13:56:40 UTC


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