sqlite 数据库封装类php
发布时间:2020-12-12 19:59:48 所属栏目:百科 来源:网络整理
导读:?php /*** class ,若有错误请指正*/class sqliteclass{ public $db_file=""; public $version=""; public $link=""; public $error_msg=""; public function __construct($db_file) { $this-db_file = $db_file; $this-connect($db_file); # code... } /* @
<?php /** * class ,若有错误请指正 */ class sqliteclass { public $db_file=""; public $version=""; public $link=""; public $error_msg=""; public function __construct($db_file) { $this->db_file = $db_file; $this->connect($db_file); # code... } /* @func:connect() @desp: 连接数据库 @param:$db_file 数据库文件名 @return:数据库链接成功,成功返回连接资源,否则输出错误信息。 */ public function connect(){ if(!extension_loaded("sqlite")){ $this->halt("请打开SQLite相关扩展"); } if($this->link){ return $this->link; }else{ if(!this->link = sqlite_open($db_file,0666,$sqlite_error)){ $this->halt($sqlite_error); }else{ return $this->link; } } } /* @func: getTables() @desp: 获取所有存在的表 @pram: none @return: 返回所有表组成的数组 */ public function getTables(){ $tables = array(); $sql = "select name from sqlite_master where type='table'"; $result = $this->fetchAll($sql); foreach ($result as $value) { $tables[]=$value['name']; # code... } return $tables; } /* @func: dropTables @desp: 删除数据库中的所有表 @param: none @return: 成功返回true,失败返回false */ public function dropTables(){ $tables = $this->getTables; foreach ($tables as $table) { if (!$this->query("drop table $table")) { return false; } } return true; } /* @func: @desp: 检查表是否存在 @param: $table_name 表名; @return: 存在返回true,否则返回false */ public function checkTable($table_name){ $tables = $this->getTables(); return in_array($table_name,$tables); } /* @func: query @desp: 执行查询语句 @param: $sql 查询语句 @return: 返回一个资源标示符,如果查询执行部正确则返回false */ public function query($sql,$type=''){ return @sqlite_query($this->link,$sql,SQLITE_BOTH,$this->error_msg); } /* @func: fetchArray @desp: 执行查询 @param: $query 查询结构资源标示符,$type 返回的数组类型,默认为关联数组 @return: 返回一行的fetch结果 */ public function fetchArray($query,$type=SQLITE_ASSOC){ return SQLite_fetch_array($query,$type); } /* @func: fetchAll @desp: 获取结果集 @param: $sql 查询语句,$type 返回的数组类型,默认为关联数组 @return: 返回查询语句执行后的所有结果的二维数组 */ public function fetchAll($sql,$type=SQLITE_ASSOC){ return sqlite_fetch_all($this->query($sql),$type); } /* @func: resultFirst @desp: 取得第一行第一列的值 @param: $SQL查询语句 @return: 取得第一行第一列的值 */ public function resultFirst($sql){ $result=$this->fetchArray($this->query($sql),$type=SQLITE_NUM); return $result[0]; } /* @func: numRows @desp: 取得查询结果的行数 @param: $query 查询语句执行后的资源描述符 @return: 查询结果的行数 */ public function numRows($query){ $result_rows=sqlite_num_rows($query); return $result_rows; } /* @func: countRows @desp: 获取查询结果的行数 @param: $sql 查询语句 @return: 获取查询结果的行数 */ public function countRows($sql){ $query=$this->query($sql); $result_rows=sqlite_num_rows($query); return $result_rows; } /* @func: insertId @desp: 获取某个表的最大ID号,自增列integer primary key @param: $table 表ming,$id 主键 @return:返回表的最大id值,如果为自增列,则可以认为是最后插入的记录id */ public function insertId($table,$id){ $sql = "select max($id) from $table"; return $this->resultFirst($sql); } /* @func: numFields @desp: 取得结果集中字段的数目 @param: $query 查询语句执行后返回的资源描述符 @return: 取得结果集中字段的数目 */ public function numFields($query){ return sqlite_num_fields($query); } /* @func: getError @desp: 返回上一个SQLite查询产生的文本错误信息 @param: @return:返回上一个SQLite查询产生的文本错误信息 */ public function getError(){ return $this->error_msg; } /* @func: @desp: @param: @return: 返回上一个SQLite操作中的错误信息的数字编码 */ public function getErrno(){ return sqlite_last_error($this->link); } /* @func: @desp: 取得SQLite版本信息,此处根据创建的db文件信息读取,若不同文件格式不同,可能有问题 @param: @return: SQLite版本信息 */ public function getVersion(){ if(!$lines=file($this->db_file)){ $this->halt("获取版本信息失败"); } $sqliteinfo=explode("**",$lines[0]); $versioninfo=explode(" ",$sqliteinfo[1]); $this->version=$versioninfo[5]." ".$versioninfo[6]; return $this->version; } /* @func: halt @desp: 结束脚本,并输出相关信息 @param: $msg 输出信息字符串 @return: */ public function halt($msg){ die($msg); } /* @func: @desp: 释放获取的数据库连接资源 @param: @return: */ public function close(){ if($this->link){ sqlite_close($this->link); } } /* @func: @desp: 析构函数 @param: @return: */ public function __destruct(){ $this->close(); } } ?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |