| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- <?php
- // +----------------------------------------------------------------------
- // | ThinkPHP [ WE CAN DO IT JUST THINK ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2006~2019 http://thinkphp.cn All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
- // +----------------------------------------------------------------------
- // | Author: liu21st <liu21st@gmail.com>
- // +----------------------------------------------------------------------
- declare (strict_types = 1);
- namespace think\db;
- use Psr\SimpleCache\CacheInterface;
- use think\DbManager;
- /**
- * Connection interface
- */
- interface ConnectionInterface
- {
- /**
- * 获取当前连接器类对应的Query类
- * @access public
- * @return string
- */
- public function getQueryClass(): string;
- /**
- * 连接数据库方法
- * @access public
- * @param array $config 接参数
- * @param integer $linkNum 连接序号
- * @return mixed
- */
- public function connect(array $config = [], $linkNum = 0);
- /**
- * 设置当前的数据库Db对象
- * @access public
- * @param DbManager $db
- * @return void
- */
- public function setDb(DbManager $db);
- /**
- * 设置当前的缓存对象
- * @access public
- * @param CacheInterface $cache
- * @return void
- */
- public function setCache(CacheInterface $cache);
- /**
- * 获取数据库的配置参数
- * @access public
- * @param string $config 配置名称
- * @return mixed
- */
- public function getConfig(string $config = '');
- /**
- * 关闭数据库(或者重新连接)
- * @access public
- * @return $this
- */
- public function close();
- /**
- * 查找单条记录
- * @access public
- * @param BaseQuery $query 查询对象
- * @return array
- * @throws DbException
- * @throws ModelNotFoundException
- * @throws DataNotFoundException
- */
- public function find(BaseQuery $query): array;
- /**
- * 查找记录
- * @access public
- * @param BaseQuery $query 查询对象
- * @return array
- * @throws DbException
- * @throws ModelNotFoundException
- * @throws DataNotFoundException
- */
- public function select(BaseQuery $query): array;
- /**
- * 插入记录
- * @access public
- * @param BaseQuery $query 查询对象
- * @param boolean $getLastInsID 返回自增主键
- * @return mixed
- */
- public function insert(BaseQuery $query, bool $getLastInsID = false);
- /**
- * 批量插入记录
- * @access public
- * @param BaseQuery $query 查询对象
- * @param mixed $dataSet 数据集
- * @return integer
- * @throws \Exception
- * @throws \Throwable
- */
- public function insertAll(BaseQuery $query, array $dataSet = []): int;
- /**
- * 更新记录
- * @access public
- * @param BaseQuery $query 查询对象
- * @return integer
- * @throws Exception
- * @throws PDOException
- */
- public function update(BaseQuery $query): int;
- /**
- * 删除记录
- * @access public
- * @param BaseQuery $query 查询对象
- * @return int
- * @throws Exception
- * @throws PDOException
- */
- public function delete(BaseQuery $query): int;
- /**
- * 得到某个字段的值
- * @access public
- * @param BaseQuery $query 查询对象
- * @param string $field 字段名
- * @param mixed $default 默认值
- * @param bool $one 返回一个值
- * @return mixed
- */
- public function value(BaseQuery $query, string $field, $default = null);
- /**
- * 得到某个列的数组
- * @access public
- * @param BaseQuery $query 查询对象
- * @param string $column 字段名 多个字段用逗号分隔
- * @param string $key 索引
- * @return array
- */
- public function column(BaseQuery $query, string $column, string $key = ''): array;
- /**
- * 执行数据库事务
- * @access public
- * @param callable $callback 数据操作方法回调
- * @return mixed
- * @throws PDOException
- * @throws \Exception
- * @throws \Throwable
- */
- public function transaction(callable $callback);
- /**
- * 启动事务
- * @access public
- * @return void
- * @throws \PDOException
- * @throws \Exception
- */
- public function startTrans();
- /**
- * 用于非自动提交状态下面的查询提交
- * @access public
- * @return void
- * @throws PDOException
- */
- public function commit();
- /**
- * 事务回滚
- * @access public
- * @return void
- * @throws PDOException
- */
- public function rollback();
- /**
- * 获取最近一次查询的sql语句
- * @access public
- * @return string
- */
- public function getLastSql(): string;
- }
|