发新话题
打印

SOLite的类!!

SOLite的类!!

其实还是个半成品,想写个多用户的blog(以前写过的,可数据丢失了),顺便试用下sqlite,就写了个这样的类,不过我水平有限,错误处理还没弄好,有些我的系统暂时不要用的函数没加进去,如sqlite_changes,还有些加进去的功能也没规范的用到如sqlite_last_insert_rowid,大家看看有没有什么问题,我再改,谢谢!贴一份,上传一份,方便各种人(主要指懒人和勤人 )
copycode
PHPCODE:
<?php 
/*@http://sfcube.net*/    
class sqlite {

    private 
$sqlite;

    private 
$query;

    private 
$arary;

    public 
$error_msg "";

    public 
$isOpen false;

    public function 
__construct () {
        
$this->sqlite null;
        
$this->query null;
        
$this->error_msg "";
        
$this->isOpen false;
    }
/*
    public function __destruct () {
        $this->close ();
    }
*/    

    
public function close () {
        if (
is_resource ($this->sqlite)) {
            @
sqlite_close ($this->sqlite);
            
$this->isOpen false;
        }
    }

    public function 
fetch_array ($sqlite_query null) {
        if (
is_null ($sqlite_query)) {
            
$query $this->query;
        } else {
            
$query $sqlite_query;
        }
        
/*
        if ($this->array = @sqlite_fetch_array ($this->query, SQLITE_BOTH)) { 
            return $this->array;
        } else {
            echo $this->last_error ($this->error_msg); 
            return false;
        }
        */        
        
return sqlite_fetch_array ($querySQLITE_BOTH);    
    }
    
    public function 
last_insert_id () {
        return 
sqlite_last_insert_rowid ($this->sqlite);        
    }
    
    public function 
num_rows ($sqlite_query null) {
        if (
is_null ($sqlite_query)) {
            
$query $this->query;
        } else {
            
$query $sqlite_query;
        }
        return 
sqlite_num_rows ($query);    
    }
        
    public function 
open ($filename$mode 0666) {
        
$this->error_msg "";
        if (
$this->sqlite = @sqlite_open ($filename$mode$this->error_msg)) { 
            
$this->isOpen true;
            return 
true;
        } else {
            return 
false;
        }    
    }

    public function 
query ($sql) {
        
$this->error_msg "";
        if (
$this->query = @sqlite_query ($this->sqlite$sql)) { 
            return 
$this->query;
        } else {
            echo 
$this->last_error ($this->error_msg); 
            return 
false;
        }    
    }    

    public function 
query_first ($sql) {
        return 
$this->fetch_array ($this->query($sql));    
        
//return sqlite_array_query ($sql, $this->sqlite, SQLITE_BOTH);
    
}
    
    public function 
last_error (&$error_str "") {
        
$return sqlite_last_error ($this->sqlite);
        
$error_str sqlite_error_string ($return);
        return 
"<p>".$error_str." in ".__FILE__." on line ".__LINE__.".</p>";
    }
}

?>
enjoy it!

附件

db_sqlite.class.rar (695 Bytes)

2004-8-1 17:03, 下载次数: 7

Fluke's blog 投身ACM了,献身Python了,死在Linux了...

TOP

试试和mysql比比看.
差别有多少

TOP

typeless!!
只有Integer Primary Key可以指定auto increase
其他任何类型都没有
db文件是单独的,象access的mdb
Fluke's blog 投身ACM了,献身Python了,死在Linux了...

TOP



有没有sqlite的手册看看
有点意思哦 我们的网站――www.enwell.net

TOP

sqlite网站都没什么介绍 :mad:
好在php5手册有了
上传时发现大于2M
还是自己到php.net下吧
Fluke's blog 投身ACM了,献身Python了,死在Linux了...

TOP


php5的手册一定要看了
有点意思哦 我们的网站――www.enwell.net

TOP

手册里有sqlite的函数介绍,有几个mysql里好像没的,还有些写法不同
有的如sqlite_unbuffered_query有待应用测试,呵呵
Fluke's blog 投身ACM了,献身Python了,死在Linux了...

TOP

unbufferedQuery("SELECT * FROM foo"); foreach ($res as $row) { // iterate through result object // Output code print_r($row); } ?> 从例子来看,好像一下返回全部了
有点意思哦 我们的网站――www.enwell.net

TOP

哪来的类啊呵呵
Fluke's blog 投身ACM了,献身Python了,死在Linux了...

TOP

发新话题