sqlite 数据库连接类
sqlite 数据库连接类就是利用了php 与sqlite进行连接操作,代码如下:
*/ lass db_class { var $conn =null; var $querynum = 0; /** * 数据库连接,返回数据库连接标识符 * * @param string $ 数据库服务器主机 * @param string $ 数据库服务器帐号 * @param string $ 数据库服务器密码 * @param string $ 数据库名 * @param bool $ 是否保持持续连接,1为持续连接,0为非持续连接 * @return link_identifier $dbuser, $dbpw, $dbname, */ function connect( $dbhost , $pconnect = 0) { $error = '' ; $func = $pconnect == 1 ? 'sqlite_popen' : 'sqlite_open' ; if (! $this -> conn = $func ( $dbhost , 0666, $error )) { $this -> halt( $error ); } return $this -> conn; } /** * 执行sql语句 * * @param string $ sql语句 * @param string $ 默认为空,可选值为 cache unbuffered * @param int $ cache以秒为单位的生命周期 * @return resource */ function query( $sql , $type = '' , $expires = 3600, $dbname = '' ) { $error = '' ; $func = $type == 'unbuffered' ? 'sqlite_unbuffered_query' : 'sqlite_query' ; if (preg_match( "/^s*select/i" , $sql )) { $query = $func ( $this -> conn, $sql , sqlite_assoc, $error ); } else { $query = sqlite_exec( $this -> conn, $sql , $error ); } if ( $error ) { $this -> halt( $error , $sql ); } $this -> querynum++; return $query ; } /* *@param string $ table名 *@param string $ where条件 *@param string $ colum名 *@param string $ limit数量 */ function getlist( $table , $wheres = "1=1" , $colums = '*' , $limits = '3000' , $orderbys = "id desc" ) { $query = $this -> query( "select " . $colums . " from " . $table . " where " . $wheres . " order by " . $orderbys . " limit " . $limits , $type , $expires , $dbname ); while ( $rs = $this -> fetch_array( $query )){ $datas []= $rs ; } //print_r("select ".$colums." from ".$table." where ".$wheres." limit ".$limits); //print_r($rs);die(); $this -> free_result( $query ); return $datas ; } function add_one( $table , $colums , $data ) { //die("insert into ".$table." (".$colums.") values(".$data.")"); $query = $this -> query( "insert into " . $table . " (" . $colums . ") values(" . $data . ")" , $type , $expires , $dbname ); //return $this->insert_id(); return $query ; } function delist( $table , $idarray , $wheres = "no" ) { if ( $wheres == 'no' ) $query = $this -> query( "delete from " . $table . " where id in(" . $idarray . ")" , $type , $expires , $dbname ); else $query = $this -> query( "delete from " . $table . " where " . $wheres , $type , $expires , $dbname ); return $query ; } function updatelist( $table , $updatedata , $idarray ) { $query = $this -> query( "update " . $table . " set " . $updatedata . " where id in(" . $idarray . ")" , $type , $expires , $dbname ); return $query ; } //update max_vote set maxtitle='$title',maxban='$ban', /** * 执行sql语句,只得到一条记录 * * @param string $ sql语句 * @param string $ 默认为空,可选值为 cache unbuffered * @param int $ cache以秒为单位的生命周期 * @return array */ function get_one( $sql , $type = '' , $expires = 3600, $dbname = '' ) { $query = $this -> query( $sql , $type , $expires , $dbname ); $rs = $this -> fetch_array( $query ); $this -> free_result( $query ); return $rs ; } /** * 从结果集中取得一行作为关联数组 * * @param resource $ 数据库查询结果资源 * @param string $ 定义返回类型 * @return array */ function fetch_array( $query , $result_type = sqlite_assoc) { return sqlite_fetch_array( $query , $result_type ); } /** * 取得前一次 sqlite操作所影响的记录行数 * * @return int */ function affected_rows() { return sqlite_changes( $this -> conn); } /** * 取得结果集中行的数目 * * @return int */ function num_rows( $query ) { return sqlite_num_rows( $query ); } /** * 返回结果集中字段的数目 * * @return int */ function num_fields( $query ) { return sqlite_num_fields( $query ); } /** * * @return array 备用,一般不用. */ function result( $query , $row ) { return @sqlite_fetch_all( $query , sqlite_assoc); } /** * sqlite没有相应函数 */ function free_result( $query ) { return ; } /** * 取得上一步 insert 操作产生的 id * * @return int */ function insert_id() { return sqlite_last_insert_rowid( $this -> connid); } /** * * @return array 只得到数字索引 */ function fetch_row( $query ) { return sqlite_fetch_array( $query , sqlite_num); } /** */ function fetch_assoc( $query ) { return $this -> fetch_array( $query , sqlite_assoc); } /** * * @return string */ function version() { return sqlite_libversion(); } function close() { return sqlite_close( $this -> conn); } /** * * @return string */ function error() { return sqlite_error_string( $this -> errno); } /** * * @return int */ function errno() { return sqlite_last_error( $this -> conn); } /** * 显示mysql教程错误信息 */ function halt( $message = '' , $sql = '' ) { exit ( "sqlitequery:$sql <br> sqliteerror:" . $this -> error() . " <br> sqliteerrno:" . $this -> errno() . " <br> message:$message" ); } //开源代码phpfensi.com查看更多关于sqlite 数据库连接类 - php类库的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did29479