关于phpnewsqlite3的信息

本文目录一览:

php操作sqlite sql语句执行两次的问题

我觉得,你这个方法对插入并不适用啊。插入返回的没有结果集,只有成功与失败。那你执行之后,还去fetchArray() 。这个就不好了吧。插入的时候,不需要去取这个啊。你应该要判断一下传进来的SQL。如果是 SELECT 开头的,则执行这句。如果是非SELECT ,比如 INSERT UPDATE DELETE 那么就不需要去执行那句。而是直接返回 $result 就行了。你的执行两句,有可能就是这个不需要执行的地方引起的。你自己加个判断,处理一下。看看是否还会插入两条记录。

谁知道php使用sqlite3是用 new PDO 呢,,还是用 new SQLlite3 这个呢

两者都可以,都需要开启php的对应扩展。

用PDO可以使代码适用于多种数据库,使得代码抽象化,脱离数据库关联。

用指定SQLite3后,代码只能用于这种数据库。

尽量用PDO。

php创建sqlite数据库后,增加内容会生成journal文件

sqlite的事务特性,journal文件是事务开始产生的,直到整个事务结束才会消失,你在完成一个事务后,必须提交这次事务才能生效,比如PHP手册里的示例:

unlink(‘mysqlitedb.db’);

$db = new SQLite3(‘mysqlitedb.db’);

$stmt = $db-prepare(‘SELECT bar FROM foo WHERE id=:id’);

$stmt-bindValue(‘:id’, 1, SQLITE3_INTEGER);

$result = $stmt-execute();

后边加个关闭连接的语句试试:$db-close();

如果还不行,就不太清楚了,试试升级下sqlite。

PHP中怎么使用SQLite数据库,最好可以把创建和连接数据库的代码发出来。谢谢!急!急!急!

首先说基本配置:

PHP SQLite 的使用和配置方法:

在PHP 5.1.x 以后自带了 SQLtie 数据库功能,只需要在配置PHP.ini中开启即可

;extension=php_sqlite.dll

在PHP 5.2.x 以后自带了 SQLtie PDO数据库功能,只需要在配置PHP.ini中开启即可

;extension=php_pdo_sqlite.dll

SQLite 数据库管理:

1、SQLiteManager与PHPmyadmin不同,需要添加管理的数据库

2、Windows下使用添加路径需要将 X: \**\** 改为 X:/**/**

3、 创建数据库的时候需要指定SQLite 数据库文件存放的路径

再说操作:

?php

$db_path = ‘sqlite3_db_php’;

$db = new SQLite3($db_path); //这就是创建数据库,也是连接数据库

if (!!$db) {

//下面创建一个表格

$db-exec(‘CREATE TABLE user (id integer primary key, name varchar(32), psw varchar(32))’);

求:哪位高手帮写个PHP + Sqlite3 增 改 删 数据库实例 不剩感激

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;

}

}

?

php sqlite3 怎么释放内存?

仔细看看你用到的sqlite函数的说明,需要释放的就在该释放的地方执行释放函数。其实就像用malloc和free一样啊。使用的时候看的仔细一些,那些函数需要申请空间,调用什么函数进行释放等都有详细的说明。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/197047.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-03 13:27
下一篇 2024-12-03 13:27

相关推荐

  • Java 监控接口返回信息报错信息怎么处理

    本文将从多个方面对 Java 监控接口返回信息报错信息的处理方法进行详细的阐述,其中包括如何捕获异常、如何使用日志输出错误信息、以及如何通过异常处理机制解决报错问题等等。以下是详细…

    编程 2025-04-29
  • 使用Python爬虫获取电影信息的实现方法

    本文将介绍如何使用Python编写爬虫程序,来获取和处理电影数据。需要了解基本的Python编程语言知识,并使用BeautifulSoup库和Requests库进行爬取。 一、准备…

    编程 2025-04-28
  • Python爬取网页信息

    本文将从多个方面对Python爬取网页信息做详细的阐述。 一、爬虫介绍 爬虫是一种自动化程序,可以模拟人对网页进行访问获取信息的行为。通过编写代码,我们可以指定要获取的信息,将其从…

    编程 2025-04-28
  • 如何使用Python执行Shell命令并获取执行过程信息

    本文将介绍如何使用Python执行Shell命令并获取执行过程信息。我们将从以下几个方面进行阐述: 一、执行Shell命令 Python内置的subprocess模块可以方便地执行…

    编程 2025-04-28
  • Python实现身份信息模拟生成与查验

    本文将从以下几个方面对Python实现身份信息模拟生成与查验进行详细阐述: 一、身份信息生成 身份信息生成是指通过代码生成符合身份信息规范的虚假数据。Python中,我们可以使用f…

    编程 2025-04-27
  • Dapper使用getschema获取表信息

    本文旨在介绍Dapper中使用getschema获取表信息的方法和注意事项。 一、获取某张表的所有列信息 使用Dapper获取某张表信息,可以使用 `IDbConnection.G…

    编程 2025-04-27
  • 已装备我军的空中信息化作战平台

    本文将会从多个方面详细阐述已装备我军的空中信息化作战平台。 一、平台概述 已装备我军的空中信息化作战平台是一个全新的作战系统,具备实时数据采集、处理、分析、共享的能力。它可以在不同…

    编程 2025-04-27
  • 通过提交信息搜索-使用git

    本篇文章重点讲解如何使用git通过提交信息来搜索。我们将从多个方面介绍如何使用git来搜索提交信息,并提供相应的代码示例以供参考。 一、搜索方式 Git提供了三种搜索方式,分别为:…

    编程 2025-04-27
  • Linux查看系统信息

    一、CPU信息 Linux系统下,查看CPU的信息最常用的命令是lscpu。该命令可以显示CPU架构、核心数量、线程数、缓存大小、CPU频率等信息。例如: lscpu 该命令会输出…

    编程 2025-04-24
  • 软考 信息安全工程师

    软考 信息安全工程师是一项技能型国家级资格认证考试,主要测试考生在信息安全领域的理论知识和实践技能,是证明个人信息安全能力的重要证书。本文将从多个方面对软考 信息安全工程师做详细的…

    编程 2025-04-23

发表回复

登录后才能评论