ConnectionInterface.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | ThinkPHP [ WE CAN DO IT JUST THINK ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2006~2019 http://thinkphp.cn All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
  8. // +----------------------------------------------------------------------
  9. // | Author: liu21st <liu21st@gmail.com>
  10. // +----------------------------------------------------------------------
  11. declare (strict_types = 1);
  12. namespace think\db;
  13. use Psr\SimpleCache\CacheInterface;
  14. use think\DbManager;
  15. /**
  16. * Connection interface
  17. */
  18. interface ConnectionInterface
  19. {
  20. /**
  21. * 获取当前连接器类对应的Query类
  22. * @access public
  23. * @return string
  24. */
  25. public function getQueryClass(): string;
  26. /**
  27. * 指定表名开始查询
  28. * @param $table
  29. * @return BaseQuery
  30. */
  31. public function table($table);
  32. /**
  33. * 指定表名开始查询(不带前缀)
  34. * @param $name
  35. * @return BaseQuery
  36. */
  37. public function name($name);
  38. /**
  39. * 连接数据库方法
  40. * @access public
  41. * @param array $config 接参数
  42. * @param integer $linkNum 连接序号
  43. * @return mixed
  44. */
  45. public function connect(array $config = [], $linkNum = 0);
  46. /**
  47. * 设置当前的数据库Db对象
  48. * @access public
  49. * @param DbManager $db
  50. * @return void
  51. */
  52. public function setDb(DbManager $db);
  53. /**
  54. * 设置当前的缓存对象
  55. * @access public
  56. * @param CacheInterface $cache
  57. * @return void
  58. */
  59. public function setCache(CacheInterface $cache);
  60. /**
  61. * 获取数据库的配置参数
  62. * @access public
  63. * @param string $config 配置名称
  64. * @return mixed
  65. */
  66. public function getConfig(string $config = '');
  67. /**
  68. * 关闭数据库(或者重新连接)
  69. * @access public
  70. * @return $this
  71. */
  72. public function close();
  73. /**
  74. * 查找单条记录
  75. * @access public
  76. * @param BaseQuery $query 查询对象
  77. * @return array
  78. */
  79. public function find(BaseQuery $query): array;
  80. /**
  81. * 查找记录
  82. * @access public
  83. * @param BaseQuery $query 查询对象
  84. * @return array
  85. */
  86. public function select(BaseQuery $query): array;
  87. /**
  88. * 插入记录
  89. * @access public
  90. * @param BaseQuery $query 查询对象
  91. * @param boolean $getLastInsID 返回自增主键
  92. * @return mixed
  93. */
  94. public function insert(BaseQuery $query, bool $getLastInsID = false);
  95. /**
  96. * 批量插入记录
  97. * @access public
  98. * @param BaseQuery $query 查询对象
  99. * @param mixed $dataSet 数据集
  100. * @return integer
  101. */
  102. public function insertAll(BaseQuery $query, array $dataSet = []): int;
  103. /**
  104. * 更新记录
  105. * @access public
  106. * @param BaseQuery $query 查询对象
  107. * @return integer
  108. */
  109. public function update(BaseQuery $query): int;
  110. /**
  111. * 删除记录
  112. * @access public
  113. * @param BaseQuery $query 查询对象
  114. * @return int
  115. */
  116. public function delete(BaseQuery $query): int;
  117. /**
  118. * 得到某个字段的值
  119. * @access public
  120. * @param BaseQuery $query 查询对象
  121. * @param string $field 字段名
  122. * @param mixed $default 默认值
  123. * @return mixed
  124. */
  125. public function value(BaseQuery $query, string $field, $default = null);
  126. /**
  127. * 得到某个列的数组
  128. * @access public
  129. * @param BaseQuery $query 查询对象
  130. * @param string|array $column 字段名 多个字段用逗号分隔
  131. * @param string $key 索引
  132. * @return array
  133. */
  134. public function column(BaseQuery $query, $column, string $key = ''): array;
  135. /**
  136. * 执行数据库事务
  137. * @access public
  138. * @param callable $callback 数据操作方法回调
  139. * @return mixed
  140. */
  141. public function transaction(callable $callback);
  142. /**
  143. * 启动事务
  144. * @access public
  145. * @return void
  146. */
  147. public function startTrans();
  148. /**
  149. * 用于非自动提交状态下面的查询提交
  150. * @access public
  151. * @return void
  152. */
  153. public function commit();
  154. /**
  155. * 事务回滚
  156. * @access public
  157. * @return void
  158. */
  159. public function rollback();
  160. /**
  161. * 获取最近一次查询的sql语句
  162. * @access public
  163. * @return string
  164. */
  165. public function getLastSql(): string;
  166. }