在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
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中) 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; } } ?>
|
2022-08-19
2022-07-30
2022-08-17
2022-11-06
2022-08-17
请发表评论