php sqlite3函数,SQLITE3在php中的运用

php中操作sqlite3数据库的类文件。

一般用法:

$filepath="/apps/www/htdocs/databasename";

$db=new SPSQLite3($filepath); //打开此路径数据库文件

$sql="select * from tablename"; //查询记录

$sql2="delete from tablename"; //删除表内所有记录

$db->exec_sql($sql); //执行查询语句

$db->struct_sql($sql2); //执行删除

$result=$db->get_all_data(); //返回操作记录集合

$numbers=count($result); //得到有效记录数

$fields=$result[0]["field"]; //取字段内容

$db->close(); //关闭

?>

需要在装入的头文件中加入:@dl('sqlite3.so');调用动态链接库(linux中)

[@more@]

class SPSQLite3

{

var $db_name; //连接的sqlite数据库服务器的用户密码

var $db_link; //数据库连接的句柄

var $result; //执行sqlite语句的资源句柄

var $insert_autoid = 0; //增加记录时自动编号的最后一个ID号

var $get_data = array(); //获取记录内容

var $get_all_data = array(); //获取所有记录内容

var $num_rows = 0; //执行SELECT语句时获取了多少条记录

var $affected_rows = 0; //执行除SELECT语句所影响的记录行数

var $error = "";

function SPSQLite3($db_name = "sqlite")

{

$this->db_name = $db_name;

$this->open_db($db_name); //打开数据库

}

//构造函数

function __destruct()

{

$this->free();

$this->close();

}

//释放查询值

function free()

{

if ($this->result)

{

unset($this->result);

}

}

//关闭数据库连接

function close()

{

if ($this->db_link)

{

$this->free();

return @sqlite3_close($this->db_link);

}

}

//严重错误时停执行

function halt($msg)

{

$this->free();

$this->close();

//调试函数

print("

程序遇到一个严重而至命的错误,以至停止执行!

错误描述:{$msg}

");

exit(1);

}

//打开数据连接,并选择数据库

function open_db($db_name = "sqlite")

{

if ($db_name == "")

{

$db_name = $this->db_name;

}

if ($db_name == "")

{

$this->halt("未能找到指定要操作的数据库名:{$db_name}!");

}

$this->db_link = @sqlite3_open($db_name) or die ("数据库连接失败");

if ($this->db_link)

{

return $this->db_link;

}else{

$this->halt("您所要操作的文件不能写,权限不足!");

}

}

//返回sqlite连接句柄

function db_link()

{

return $this->db_link;

}

//执行对数据查询操作的SQL语句

function exec_sql($sql_cmd)

{

$this->result = @sqlite3_query($this->db_link, $sql_cmd);

return $this->result;

}

//执对数据库操作(create,update,delete,insert)的SQL语句

function struct_sql($sql_cmd)

{

$this->result = @sqlite3_exec($this->db_link, $sql_cmd);

return $this->result;

}

//获取所有数据内容存入数组中

function get_data()

{

if (!$this->result)

{

//$this->halt("没有记录可获取!");

return false;

}

$this->get_data = @sqlite3_fetch_array($this->result);

if (!is_array($this->get_data))

{

$this->get_data = null;

}

return $this->get_data;

}

//获取所有数据内容存入数组中

function get_all_data()

{

if (!$this->result)

{

//$this->halt("没有记录可获取!");

return false;

}

$this->get_all_data = array();

while ($row = @sqlite3_fetch_array($this->result))

{

$this->get_all_data[] = $row;

}

return $this->get_all_data;

}

//记录操作返回数

function num_rows()

{

if (!$this->result)

{

//$this->halt("没有记录可获取!");

return false;

}

//禁用num_rows函数..

//$this->num_rows = sqlite3_changes($this->result);

$this->num_rows = 0;

return $this->num_rows;

}

//seek函数

function seek($nu)

{

if (!$this->result)

{

//$this->halt("没有记录可获取!");

return false;

}

$seek_result = @sqlite_seek(!$this->result, $nu);

if ($seek_result)

{

return $seek_result;

}else{

$this->halt("数据记录移动范围超出了记录!");

}

}

//获取最后增加记录的自动编号

function insert_autoid()

{

$this->insert_autoid = @sqlite3_last_insert_rowid($this->db_link);

return $this->insert_autoid;

}

//执行除SELECT语句所影响的记录行数

function affected_rows()

{

$this->affected_rows = sqlite3_changes($this->db_link);

return $this->affected_rows;

}

//创建数据库函数

function create_db($db_name)

{

if ($db_name == "")

{

return false;

}

$str = ".,<>}])";

for ($i = 0; $i < strlen($str); $i++)

{

if (eregi($str{$i}, $db_name))

{

return false;

}

}

return ($this->struct_sql("CREATE DATABASE {$db_name} ;")) ? true : false;

}

//删除数据库

function drop_db($db_name)

{

if ($db_name == "")

{

return false;

}

$str = ".,<>}])";

for ($i = 0; $i < strlen($str); $i++)

{

if (eregi($str{$i}, $db_name))

{

return false;

}

}

return ($this->struct_sql("DROP DATABASE {$db_name} ;")) ? true : false;

}

//清空数据表

function truncate_table($t_name)

{

if ($t_name == "")

{

return false;

}

$str = ".,<>}])";

for ($i = 0; $i < strlen($str); $i++)

{

if (eregi($str{$i}, $t_name))

{

return false;

}

}

return ($this->struct_sql("DELETE FROM {$t_name} ;")) ? true : false;

}

//获取最后数据库出错信息

function get_last_error()

{

$error = array();

$error["number"] = sqlite3_error($this->db_link);

$error[0] = $error["number"];

$error["string"] = sqlite3_error($error[0]);

$error[1] = $error["string"];

return $error;

}

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值