八零在线优社区

 找回密码
 帐号注册

QQ登录

只需一步,快速开始

搜索
热搜: PhotoShop
查看: 252|回复: 0

Discuz二次开发插件开发数据库操作语句集合

[复制链接]
发表于 2017-4-26 21:54:59 | 显示全部楼层 |阅读模式
  1. 数据表插入:
  2. 方法:
  3. public static function insert($table, $data, $return_insert_id = false, $replace = false, $silent = false)
  4. 参数:
  5. $table:插入数据的表
  6. $data:插入的数据,字段对应值
  7. $return_insert_id:是否返回插入数据的ID
  8. $replace:是否使用replace into(当原始表中存在不重复数据就插入,存在就更新)
  9. $silent:操作失败是否不提示

  10. 实例
  11. DB::insert('test_db',array(
  12. 'name' => 'ppc',
  13. ),true,true);

  14. 数据表删除:
  15. 方法:
  16. public static function delete($table, $condition, $limit = 0, $unbuffered = true)
  17. 参数:
  18. $table:删除数据的表
  19. $condition:删除的条件
  20. $limit:删除满足条件的条目数
  21. $unbufered:是否使用无缓存查询

  22. 实例:
  23. DB::delete('test_db','id>2',1,true);

  24. 数据表更新:
  25. 方法:
  26. public static function update($table, $data, $condition = '', $unbuffered = false, $low_priority = false)
  27. 参数:
  28. $table:更新数据的表
  29. $data:更新的数据,字段对应值
  30. $condition:更新的条件
  31. $unbufered:是否使用无缓存查询
  32. $low_priority:是否采用无锁表更新

  33. 数据表查询(单条):
  34. 方法:
  35. public static function fetch_first($sql, $arg = array(), $silent = false)
  36. 参数:
  37. $sql:查询数据的SQL语句
  38. $arg:绑定查询的参数
  39. $silent:查询失败是否不提示
  40. 实例:
  41. $id = $_GET['id'];
  42. DB::fetch_first('select * from %t where id=%d',array(
  43. 'test_db',$id
  44. ));

  45. DB::fetch_first('select * from %t where name=%s',array(
  46. 'test_db','ccc'
  47. ));



  48. 数据表查询(多条):
  49. 方法:
  50. public static function fetch_all($sql, $arg = array(), $keyfield = '', $silent=false)
  51. 参数:
  52. $sql:查询数据的SQL语句
  53. $arg:绑定查询的参数
  54. $keyfield:一维索引的字段名称
  55. $silent:查询失败是否不提示
  56. 实例:
  57. DB::fetch_all('select * from %t where id >= %d AND id<=%d',array(
  58. 'test_db',7,10
  59. ));

  60. DB::fetch_all('select * from %t where id IN (%n)',array(
  61. 'test_db',array(1,2,3,4,5)
  62. ));

  63. 数据表查询(单字段) 常用于统计查询:
  64. 方法:
  65. public static function result_first($sql, $arg = array(), $silent = false)
  66. 参数:
  67. $sql:查询数据的SQL语句
  68. $arg:绑定查询的参数
  69. $silent:查询失败是否不提示
  70. 实例:
  71. DB::result_first('select name from %t where id=%d',array(
  72. 'test_db',1
  73. ));

  74. DB::result_first('select max(id) from %t',array(
  75. 'test_db'
  76. ));

  77. 数据库自定义query
  78. 方法:
  79. public static function query($sql, $arg = array(), $silent = false, $unbuffered = false)
  80. 参数:
  81. $sql:自定义SQL语句
  82. $arg:需要绑定的数据
  83. $silent:执行SQL失败时,是否不提示
  84. $unbufered:是否使用无缓存查询
  85. 实例:
  86. $query = DB::query("select * from %t where id IN (%n)",array(
  87. 'test_db',array(1,2,3)
  88. ));
  89. debug($query);

  90. 删除
  91. DB::query("delete from %t where id = %id",array(
  92. 'test_db',11
  93. ));


  94. 资源集转换结果集
  95. 方法:
  96. public static function fetch($resourceid, $type = MYSQL_ASSOC)
  97. 参数:
  98. $resourceid:数据库查询的query资源
  99. $type:数组类型
  100. 实例:
  101. 查询
  102. $query = DB::query("select * from %t where id IN (%n)",array(
  103. 'test_db',array(1,2,3)
  104. ));
  105. while($res = DB::fetch($query)){
  106.    $result[] = $res;
  107. }
  108. debug($query);

  109. 单字段资源集转换结果集(一般用于查看获取统计值)
  110. 方法:
  111. public static function result($resourceid, $row = 0)
  112. 参数:
  113. $resourceid:数据库查询的query资源
  114. $row:指定行的第一个字段
  115. 实例:
  116. $query =  DB::query("select count(*) from %t where id < %id order by id",array(
  117. 'test_db',10
  118. ));
  119. $data = DB::result($query,1);

  120. 常用实例:
  121. $query = DB::query("select count(*) from %t where id > %d",array(
  122. 'test_db',7
  123. ));
  124. $data = DB::result($query,0);
  125. echo $data;

  126. 资源集行数计算(不适合统计太多的资源,速度慢)
  127. 方法:
  128. public static function num_rows($resourceid)
  129. 参数:
  130. $resourceid:数据库查询的query资源
  131. 实例:
  132. $query = DB::query("select * from %t where id > %d",array(
  133. 'test_db',7
  134. ));
  135. $data = DB::num_rows($query);
  136. echo $data;

  137. 资源集资源释放
  138. 方法:
  139. public static function free_result($query)
  140. 参数:
  141. $query:执行SQL语句的query资源
  142. $query = DB::query("select count(*) from %t where id > %d",array(
  143. 'test_db',7
  144. ));
  145. $data = DB::result($query,0);
  146. DB::free_result($query);
  147. echo $data;

  148. 按字段排序
  149. 方法:
  150. public static function order($field, $order = 'ASC')
  151. 参数:
  152. $field:需要排序的字段
  153. $order:排序方式
  154. 实例:
  155. $query = DB::query("select * from %t where id > %d order by".DB::order('id','desc'),array(
  156. 'test_db',7
  157. ));
  158. $data = DB::result($query,0);
  159. DB::free_result($query);
  160. echo $data;

复制代码
更多数据库操作方法参考网站目录source/class/discuz/discuz_database.php文件

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 帐号注册

本版积分规则

QQ|小黑屋|手机版|八零在线优社区 ( 赣ICP备15001736号-2 )

GMT+8, 2018-6-19 14:51

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表