(推荐使用)ADODB方式连接access数据库
属性 |
值 |
命名空间 |
fize\db\realization\access\mode |
类名 |
Adodb |
父类 |
fize\db\realization\access\Db |
构造时创建Adodb连接
public function __construct (
string $file,
string $pwd = null,
string $driver = null
)
参数: |
名称
|
说明
|
file
|
数据库文件路径
|
pwd
|
密码
|
driver
|
驱动名
|
|
析构时释放ADODB资源
public function __destruct ()
返回最后插入行的ID或序列值
public function lastInsertId (
string $name = null
) : int|string
参数: |
名称
|
说明
|
name
|
应该返回ID的那个序列对象的名称,该参数在access中无效
|
|
设置TOP,支持链式调用
public function top (
int $rows
) : $this
模拟LIMIT语句,支持链式调用
public function limit (
int $rows,
int $offset = null
) : $this
参数: |
名称
|
说明
|
rows
|
要返回的记录数
|
offset
|
要设置的偏移量
|
|
返回当前使用的数据库对象原型,用于原生操作
public function prototype () : \COM
执行一个SQL语句并返回相应结果
public function query (
string $sql,
array $params = [],
callable $callback = null
) : array|int
参数: |
名称
|
说明
|
sql
|
SQL语句,支持模拟问号占位符预处理语句
|
params
|
可选的绑定参数
|
callback
|
如果定义该记录集回调函数则不返回数组而直接进行循环回调
|
|
返回值: | SELECT语句返回数组,其余返回受影响行数。
|
开始事务
public function startTrans ()
执行事务
public function commit ()
回滚事务
public function rollback ()
获取最后组装的SQL
public function getLastSql (
bool $real = false
) : string
参数: |
名称
|
说明
|
real
|
是否返回最终SQL语句而非预处理语句
|
|
仅供日志使用的SQL语句,由于本身存在SQL危险请不要真正用于执行
指定distinct查询
public function distinct (
bool $distinct = true
) : $this
参数: |
名称
|
说明
|
distinct
|
为true时表示distinct
|
|
指定要查询的字段,支持链式调用
public function field (
array|string $fields
) : $this
参数: |
名称
|
说明
|
fields
|
要查询的字段组成的数组或者字符串,如果需要指定别名,则使用:别名=>实际名称
|
|
设置表前缀
public function prefix (
string $prefix
) : $this
指定当前要操作的表
public function table (
string $name,
string $prefix = null
) : $this
参数: |
名称
|
说明
|
name
|
表名
|
prefix
|
表前缀,默认为使用当前前缀
|
|
对当前表设置别名
public function alias (
string $alias
) : $this
GROUP语句
public function group (
mixed $fields
) : $this
参数: |
名称
|
说明
|
fields
|
要GROUP的字段字符串或则数组
|
|
设置排序条件
public function order (
array|string $field_order
) : $this
参数: |
名称
|
说明
|
field_order
|
字符串原样,如果是数组(推荐),则形如字段=>排序
|
|
设置WHERE语句
public function where (
\Query|array|string $statements,
array $parse = []
) : $this
参数: |
名称
|
说明
|
statements
|
“Query对象”或者“查询数组”或者“WHERE子语句”,其中“WHERE子语句”支持原生的PDO问号预处理占位符;
|
parse
|
如果$statements是SQL预处理语句,则可以传递本参数用于预处理替换参数数组
|
|
通常情况下,我们使用简洁方式来更简便地定义条件,对于复杂条件无法满足的,可以使用查询器或者直接使用预处理语句
HAVING语句
public function having (
\Query|array|string $statements,
array $parse = []
) : $this
参数: |
名称
|
说明
|
statements
|
“QueryMysql对象”或者“查询数组”或者“WHERE子语句”,其中“WHERE子语句”支持原生的PDO问号预处理占位符;
|
parse
|
如果$statements是SQL预处理语句,则可以传递本参数用于预处理替换参数数组
|
|
通常情况下,我们使用简洁方式来更简便地定义条件,对于复杂条件无法满足的,可以使用查询器或者直接使用预处理语句
JOIN条件,可以使用所有JOIN变种
public function join (
string|array $table,
string $type = "JOIN",
string $on = null,
string $using = null
) : $this
参数: |
名称
|
说明
|
table
|
表名,是数组时是形如别名=>表名,且只能有一个元素,否则无效
|
type
|
JOIN形式,默认为JOIN
|
on
|
ON条件,建议ON条件单独开来
|
using
|
USING字段
|
|
INNER JOIN条件
public function innerJoin (
string|array $table,
string $on = null
) : $this
参数: |
名称
|
说明
|
table
|
表名,是数组时是形如别名=>表名,且只能有一个元素,否则无效
|
on
|
ON条件,建议ON条件单独开来
|
|
LEFT JOIN条件
public function leftJoin (
string|array $table,
string $on = null
) : $this
参数: |
名称
|
说明
|
table
|
表名,是数组时是形如别名=>表名,且只能有一个元素,否则无效
|
on
|
ON条件,建议ON条件单独开来
|
|
RIGHT JOIN条件
public function rightJoin (
string|array $table,
string $on = null
) : $this
参数: |
名称
|
说明
|
table
|
表名,是数组时是形如别名=>表名,且只能有一个元素,否则无效
|
on
|
ON条件,建议ON条件单独开来
|
|
UNION语句
public function union (
string $sql,
string $union_type = "UNION"
) : $this
参数: |
名称
|
说明
|
sql
|
要UNION的SQL语句
|
union_type
|
类型,可选值UNION、UNION ALL、UNION DISTINCT,默认UNION
|
|
UNION ALL语句
public function unionAll (
string $sql
) : $this
参数: |
名称
|
说明
|
sql
|
要UNION ALL的SQL语句
|
|
UNION DISTINCT语句
public function unionDistinct (
string $sql
) : $this
参数: |
名称
|
说明
|
sql
|
要UNION DISTINCT的SQL语句
|
|
插入记录
public function insert (
array $data
) : int
插入记录,并返回最后插入行的ID或序列值
public function insertGetId (
array $data,
string $name = null
) : int|string
遍历当前结果集
public function fetch (
callable $func
)
由于少了一层循环和转化,fetch方法比select性能上略有提升,但不方便外部调用,特别是MVC等架构
删除记录
public function delete () : int
更新记录
public function update (
array $data
) : int
执行查询,返回结果记录列表
public function select (
bool $cache = true
) : array
参数: |
名称
|
说明
|
cache
|
是否使用搜索缓存,默认true
|
|
执行查询,获取单条记录
public function findOrNull (
bool $cache = false
) : array
参数: |
名称
|
说明
|
cache
|
是否使用搜索缓存,默认false
|
|
返回值: | 如果无记录则返回null
|
执行查询,获取单条记录,如果未找到则抛出错误
public function find (
bool $cache = false
) : array
参数: |
名称
|
说明
|
cache
|
是否使用搜索缓存,默认false
|
|
得到某个字段的值
public function value (
string $field,
mixed $default = null,
bool $force = false
) : mixed
参数: |
名称
|
说明
|
field
|
字段名
|
default
|
默认值
|
force
|
强制转为数字类型
|
|
返回值: | 如果$force为true时则返回数字类型
|
得到某个列的数组
public function column (
string $field
) : array
使用模拟的LIMIT语句进行简易分页,支持链式调用
public function page (
int $index,
int $prepg = 10
) : $this
参数: |
名称
|
说明
|
index
|
页码
|
prepg
|
每页记录数量
|
|
COUNT查询
public function count (
string $field = "*"
) : int
SUM查询
public function sum (
string $field
) : int
MIN查询
public function min (
string $field,
bool $force = true
) : mixed
参数: |
名称
|
说明
|
field
|
字段名
|
force
|
强制转为数字类型
|
|
返回值: | 如果$force为true时真返回数字类型
|
MAX查询
public function max (
string $field,
bool $force = true
) : mixed
参数: |
名称
|
说明
|
field
|
字段名
|
force
|
强制转为数字类型
|
|
返回值: | 如果$force为true时真返回数字类型
|
AVG查询
public function avg (
string $field
) : mixed
设置数据
public function setValue (
mixed $field,
mixed $value
) : int
参数: |
名称
|
说明
|
field
|
字段名
|
value
|
字段值,数组为原样语句写入,其余为值写入
|
|
返回值: | 返回受影响记录条数
|
字段值增长
public function setInc (
string $field,
int $step = 1
) : int
参数: |
名称
|
说明
|
field
|
字段名
|
step
|
增长值,默认为1
|
|
返回值: | 返回受影响记录条数
|
字段值减少
public function setDec (
string $field,
int $step = 1
) : int
参数: |
名称
|
说明
|
field
|
字段名
|
step
|
增长值,默认为1
|
|
返回值: | 返回受影响记录条数
|
完整分页,执行该方法可以获取到分页记录、完整记录数、总页数,可用于分页输出
public function paginate (
int $page,
int $size = 10
) : array
参数: |
名称
|
说明
|
page
|
页码
|
size
|
每页记录数量,默认每页10个
|
|
返回值: | [记录个数, 总页数、记录数组]
|
批量插入记录
public function insertAll (
array $data_sets,
array $fields = null
) : int
参数: |
名称
|
说明
|
data_sets
|
数据集
|
fields
|
可选参数$fields用于指定要插入的字段名数组,这样参数$data_set的元素数组就可以不需要指定键名,方便输入
|
|
返回值: | 返回插入成功的记录数
|