首页 > 语言 > PHP > 正文

sqlite 数据库连接类

2024-09-04 11:44:16
字体:
来源:转载
供稿:网友

sqlite 数据库连接类就是利用了php 与sqlite进行连接操作,代码如下:

  1. */ 
  2. lass db_class { 
  3. var $conn=null; 
  4. var $querynum = 0; 
  5. /** 
  6.  * 数据库连接,返回数据库连接标识符 
  7.  *  
  8.  * @param string $ 数据库服务器主机 
  9.  * @param string $ 数据库服务器帐号 
  10.  * @param string $ 数据库服务器密码 
  11.  * @param string $ 数据库名 
  12.  * @param bool $ 是否保持持续连接,1为持续连接,0为非持续连接 
  13.  * @return link_identifier $dbuser, $dbpw, $dbname, 
  14.  */ 
  15. function connect($dbhost$pconnect = 0) { 
  16.  $error = ''
  17.  $func = $pconnect == 1 ? 'sqlite_popen' : 'sqlite_open'
  18.  if (!$this -> conn = $func($dbhost, 0666, $error)) { 
  19.   $this -> halt($error); 
  20.  } 
  21.  return $this -> conn; 
  22. /** 
  23.  * 执行sql语句 
  24.  *  
  25.  * @param string $ sql语句 
  26.  * @param string $ 默认为空,可选值为 cache unbuffered 
  27.  * @param int $ cache以秒为单位的生命周期 
  28.  * @return resource  
  29.  */ 
  30. function query($sql , $type = '' , $expires = 3600, $dbname = '') { 
  31.  $error = ''
  32.  $func = $type == 'unbuffered' ? 'sqlite_unbuffered_query' : 'sqlite_query'
  33.  if (preg_match("/^s*select/i"$sql)) { 
  34.   $query = $func($this -> conn, $sql, sqlite_assoc, $error); 
  35.  } else { 
  36.   $query = sqlite_exec($this -> conn, $sql$error); 
  37.  }  
  38.  if ($error) { 
  39.   $this -> halt($error$sql); 
  40.  } 
  41.  $this -> querynum++; 
  42.  return $query
  43. }  
  44. /* 
  45. *@param string $ table名 
  46. *@param string $ where条件 
  47. *@param string $ colum名 
  48.  
  49. *@param string $ limit数量  
  50.  
  51. */ 
  52. function getlist($table , $wheres = "1=1",  $colums = '*' ,$limits = '3000',$orderbys="id desc") { 
  53.  $query = $this -> query("select ".$colums." from ".$table." where ".$wheres." order by  ".$orderbys."  limit ".$limits$type$expires$dbname); 
  54.  while($rs = $this -> fetch_array($query)){ 
  55.   $datas[]=$rs
  56.   } 
  57.  //print_r("select ".$colums." from ".$table." where ".$wheres." limit ".$limits); 
  58.  //print_r($rs);die(); 
  59.  $this -> free_result($query); 
  60.  return $datas ; 
  61. function add_one($table , $colums ,$data ) { 
  62.  //die("insert into ".$table." (".$colums.") values(".$data.")"); 
  63.  $query = $this -> query("insert into ".$table." (".$colums.") values(".$data.")"$type$expires$dbname); 
  64.  //return $this->insert_id(); 
  65.  return $query
  66. function delist($table , $idarray,$wheres="no") { 
  67.  if($wheres=='no'
  68.   $query = $this -> query("delete from ".$table." where id in(".$idarray.")"$type$expires$dbname); 
  69.  else 
  70.   $query = $this -> query("delete from ".$table." where ".$wheres$type$expires$dbname); 
  71.  return $query
  72. function updatelist($table , $updatedata,$idarray) { 
  73.  $query = $this -> query("update ".$table." set "$updatedata."  where id in(".$idarray.")"$type$expires$dbname); 
  74.  return $query
  75. //update max_vote set maxtitle='$title',maxban='$ban', 
  76. /** 
  77.  * 执行sql语句,只得到一条记录 
  78.  *  
  79.  * @param string $ sql语句 
  80.  * @param string $ 默认为空,可选值为 cache unbuffered 
  81.  * @param int $ cache以秒为单位的生命周期 
  82.  * @return array  
  83.  */ 
  84. function get_one($sql$type = ''$expires = 3600, $dbname = '') { 
  85.  $query = $this -> query($sql$type$expires$dbname); 
  86.  $rs = $this -> fetch_array($query); 
  87.  $this -> free_result($query); 
  88.  return $rs ; 
  89. /** 
  90.  * 从结果集中取得一行作为关联数组 
  91.  *  
  92.  * @param resource $ 数据库查询结果资源 
  93.  * @param string $ 定义返回类型 
  94.  * @return array  
  95.  */ 
  96. function fetch_array($query$result_type = sqlite_assoc) { 
  97.  return sqlite_fetch_array($query$result_type); 
  98. /** 
  99.  * 取得前一次 sqlite操作所影响的记录行数 
  100.  *  
  101.  * @return int  
  102.  */ 
  103. function affected_rows() { 
  104.  return sqlite_changes($this -> conn); 
  105. /** 
  106.  * 取得结果集中行的数目 
  107.  *  
  108.  * @return int  
  109.  */ 
  110. function num_rows($query) { 
  111.  return sqlite_num_rows($query); 
  112. /** 
  113.  * 返回结果集中字段的数目 
  114.  *  
  115.  * @return int  
  116.  */ 
  117. function num_fields($query) { 
  118.  return sqlite_num_fields($query); 
  119. /** 
  120.  *  
  121.  * @return array 备用,一般不用. 
  122.  */ 
  123. function result($query$row) { 
  124.  return @sqlite_fetch_all($query, sqlite_assoc); 
  125. }  
  126. /** 
  127.  * sqlite没有相应函数 
  128.  */ 
  129. function free_result($query) { 
  130.  return ; 
  131. /** 
  132.  * 取得上一步 insert 操作产生的 id 
  133.  *  
  134.  * @return int  
  135.  */ 
  136. function insert_id() { 
  137.  return sqlite_last_insert_rowid($this -> connid); 
  138. /** 
  139.  *  
  140.  * @return array 只得到数字索引 
  141.  */ 
  142. function fetch_row($query) { 
  143.  return sqlite_fetch_array($query, sqlite_num); 
  144. }  
  145. /** 
  146.  */ 
  147. function fetch_assoc($query) { 
  148.  return $this -> fetch_array($query, sqlite_assoc); 
  149. }  
  150. /** 
  151.  *  
  152.  * @return string  
  153.  */ 
  154. function version() { 
  155.  return sqlite_libversion(); 
  156. function close() { 
  157.  return sqlite_close($this -> conn); 
  158. /** 
  159.  *  
  160.  * @return string  
  161.  */ 
  162. function error() { 
  163.  return sqlite_error_string($this -> errno); 
  164. /** 
  165.  *  
  166.  * @return int  
  167.  */ 
  168. function errno() { 
  169.  return sqlite_last_error($this -> conn); 
  170. /** 
  171.  * 显示mysql教程错误信息 
  172.  */ 
  173. function halt($message = ''$sql = '') { 
  174.  exit("sqlitequery:$sql <br> sqliteerror:" . $this -> error() . " <br> sqliteerrno:" . $this -> errno() . " <br> message:$message"); 
  175. //开源代码Vevb.com

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表