PHP+Sqlite2和PHP+Sqlite3

PHP数据库连接篇,PDO连接sqlite数据库,Sqlite安装使用说明!

SQLite是一种轻量级的关系型数据库,可以内嵌在我们的应用程序中一起发布出去。

这样我们在部署应用的时候,就不需要额外数据库的支持了。

在PHP中如果要使用sqlite,只需开启php_sqlite3.dll扩展即可,非常方便。

下面是我曾经的一个项目中,自己编写的一个操作SQLite数据库的工具类。

【注意:】php5.3版本以前只支持到sqlite2。

SQLite3 扩展自 PHP 5.3.0 起已默认启用。 允许在编译时使用 --without-sqlite3 禁用之。

Windows 用户必须启用 php_sqlite3.dll 方可使用该扩展。自 PHP 5.3.0 起,此扩展的 DLL 文件 已包含于 Windows 版的 PHP 发行包中。

操作sqlite数据库两种方法( Sqlite3 ):

1)升级php版本;

2)PDO解决连接sqlite3;

PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层。

这样,无论你使用什么数据库,你都可以通过一致的函数执行查询和获取数据。

注意,你并不能使用PDO扩展本身执行任何数据库操作,你必须使用一个database-specific

PDO driver(针对特定数据库的PDO驱动)访问数据库服务器。

PDO下载地址:http://pecl.php.net/package/pdo

PDO_Sqlite 函数及语法:http://cn.php.net/manual/en/ref.pdo-sqlite.php

下载以后并行安装就可以了,PHP5.1已经内置了PDO的相关组件,我们要做的就是打开PHP.ini把PDO和PDO_sqlite启用了extension=php_pdo.dll

extension=php_pdo_sqlite.dll

如果是5.3及以上的配置:extension=php_sqlite3.dll

1、查看一下Sqlite3类都有那些方法:echo '

';

print_r(get_class_methods('SQLite3'));

echo '

';

结果:Array

(

[0] => open

[1] => close

[2] => exec

[3] => version

[4] => lastInsertRowID

[5] => lastErrorCode

[6] => lastErrorMsg

[7] => busyTimeout

[8] => loadExtension

[9] => changes

[10] => escapeString

[11] => prepare

[12] => query

[13] => querySingle

[14] => createFunction

[15] => createAggregate

[16] => createCollation

[17] => openBlob

[18] => enableExceptions

[19] => __construct

)

关于方法用法可以去PHP官网查看,注意是看sqlite3部分哦!

2、然后我们来做一些实例操作:

1):普通方式(Sqlite3,如果你的PHP是5.3以前,那么就要用下面的PDO方式)<?php

# 连接SQLite数据库,appAll.db

$db = new SQLite3(dirname(__FILE__).'appAll.db');

# 设置数据库编码为utf-8(防止乱码)

$db->exec('set names utf8');

# 【示例1:创建表操作】

$sql = "

CREATE TABLE `user` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(50) NOT NULL COMMENT '用户名',

`create_time` int(10) unsigned NOT NULL,

`update_time` int(10) unsigned NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='用户表';

";

$res = $db->query($sql);

if($res){

echo '创建表成功
';

}else{

echo '创建表失败
';

}

# 【示例2:添加数据操作】

$res = $db->exec("insert into user(id,name) values(3,'采石222')");

if($res){

echo '【执行添加操作,并返回数据在表中的ID是多少:】

';

print_r($db->lastInsertRowID());

echo '

';

}else{

echo '没有查询到相关数据
';

}

# 【示例3:更新数据操作】

$res = $db->exec("update user set name='小川3333+++之之' where id=3");

if($res){

echo '【执行更新操作,并返回受影响行数:】

';

print_r($db->changes());

echo '

';

}else{

echo '没有更新任何数据
';

}

# 【示例4:删除数据操作:】

$res = $db->exec("delete from user where id=2");

if($res){

echo '【执行删除操作,并返回受影响行数:】

';

print_r($db->changes());

echo '

';

}else{

echo '没有删除任何数据
';

}

# 【示例5:查询单个字段】跟查询单条记录差别在于没有了True

$res = $db->querySingle("select name from user");

if($res){

echo '【查询单个字段:】

';

print_r($res);

echo '

';

}else{

echo '没有数据
';

}

# 【示例6:统计记录数】

$res = $db->querySingle("select count(id) as count from user");

if($res){

echo '【统计记录数:】

';

print_r($res);

echo '

';

}else{

echo '没有数据
';

}

# 【示例7:查询单条记录】如果没有指定字段会默认返回表中第一个字段

$res = $db->querySingle("select name from user",true);

if($res){

echo '【查询单条记录:】

';

print_r($res);

echo '

';

}else{

echo '没有数据
';

}

# 【示例8:查询多条记录】

$res = $db->query('SELECT * FROM user');

$data = [];

if($res){

while ($row = $res->fetchArray(SQLITE3_ASSOC)) {

$data[]= $row;

}

}

if($data){

echo '【查询多条记录:】

';

print_r($data);

echo '

';

}else{

echo '没有数据
';

}

# 关闭数据库链接

$db->close();

?>

2):PDO方式连接(同样可以用在Sqlite其他版本的数据库哦)<?php

header("content-type:text/html;charset=utf-8");

# 【PDO连接sqlite数据库】

$pdo = new \PDO('sqlite:'.dirname(__FILE__).'appAll.db');

# 设置数据库编码为utf-8

$pdo->exec('set names utf8');

# 【查看PDO都有那些方法】

echo '

';

print_r(get_class_methods('PDO'));

echo '

';

# 【示例1:创建数据库表】

$sql = "CREATE TABLE `user` (

`id` int(10),

`name` varchar(50),

`create_time` int(10),

`update_time` int(10),

PRIMARY KEY (`id`)

)

";

$res = $pdo->exec($sql);

if($res){

echo '创建表成功
';

}else{

echo '创建表失败
';

}

# 【示例2:添加数据】:添加数据到company表中,并返回数据在表中的ID是多少!

$res = $pdo->exec("insert into user(name) values('小川编程添加111')");

if($res){

echo '11添加成功数据ID为:'.$pdo->lastinsertid().'
';

}

$res = $pdo->query("insert into user(name) values('小川编程添加222')");

if($res){

echo '22添加成功数据ID为:'.$pdo->lastinsertid().'
';

}

# 【示例3:更新数据】:

$res = $pdo->exec("update user set name='小川编程更新111' where id=2");

if($res){

echo '更新数据成功
';

}

$res = $pdo->query("update user set name='小川编程更新222' where id=2");

if($res){

echo '成功更新数据【'.$res->rowCount().'】条
';

}

# 【示例4:删除数据】:

$res = $pdo->exec("delete from user where id=3");

if($res){

echo '删除数据成功
';

}

$res = $pdo->query("delete from user where id=3");

if($res){

echo '成功删除数据【'.$res->rowCount().'】条
';

}

# 【示例5:查询数据】:

$res = $pdo->query("select id,name from user");

$data = [];

# 1:FETCH_ASSOC   关联数组形式返回

# 2:FETCH_NUM     数字索引数组形式返回

# 设置返回数据类型方法1:

$res->setFetchMode(\PDO::FETCH_NUM);

while($row = $res->fetch()){

$data[] = $row;

}

echo '

';

print_r($data);

echo '

';

# 设置返回数据类型方法2:

while($row = $res->fetch(\PDO::FETCH_ASSOC)){

$data[] = $row;

}

echo '

';

print_r($data);

echo '

';

# 【示例6:统计数据】:统计company表有多少条数据

$num = $pdo->query("select count(*) from user");

echo '共有数据:【'.$num->fetchColumn().'】条';

# 【示例7:防sql注入】:实例,使用前先看文字说明,会理解的更透彻!

#  PDO连接mysql数据库(数据库名:lmgg ,账户:root,密码:root)

$pdo = new \PDO('sqlite:'.dirname(__FILE__).'appAll.db');

#  禁用prepared statements的仿真效果

$pdo->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false);

$pdo->query("set names 'utf8'");

$sql="select * from user where name = ?";

$res = $pdo->prepare($sql);

$name = '小川编程添加111';

$exeres = $res->execute(array($name));

$data = [];

if($exeres){

while ($row = $res->fetch(\PDO::FETCH_ASSOC)){

$data[] = $row;

}

}

echo '

';

print_r($data);

echo '

';

#  关闭数据库链接

$pdo = null;

?>

浏览器启用弹出窗口过滤功能,将无法跳转到下载页。在浏览器地址栏右边符号提示处点击允许就可以了!

郑重声明:

1、本站源码仅供个人学习研究和交流使用,请于下载后二十四小时内删除

2、本站大多资源来源于互联网、用户分享,仅供学习交流使用,本站不提供任何技术支持

3、本站联系方式Email:admin@youhutong.com ,收到邮件会第一时间处理。

4、如侵犯到任何版权问题,请立即告知本站(立即在线告知),本站将及时删除并致以最深的歉意

pdo sqlite_ sqlite2 pdo_mysql_PHP数据库连接篇,PDO连接sqlite数据库,Sqlite安装使用说明!(PHP+Sqlite2和PHP+Sqlite3)...相关推荐

  1. vc 怎样连接mysql数据库连接_vc 怎样连接mysql数据库

    vc连接mysql数据库的方法:首先打开VC6:然后在中间列表框中添加本地安装MySQL的include目录路径:接着选中"Library files"并添加MySQL的Lib目录 ...

  2. java 数据库连接实例,Java连接各种数据库的实例

    Java连接各种数据库的实例 1.Oracle8/8i/9i数据库(thin模式) 以下为引用的内容: Class.forName("oracle.jdbc.driver.OracleDri ...

  3. oracle数据库连接时报12514_连接Oracle数据库时报ORA-12541:TNS:无监听程序的图文解决教程...

    在用PL/SQL Developer等客户端工具连接oracle服务器时出现ORA-12541:TNS:无监听程序的错误,如下图: 发现原来是oracle的监听没有启动,重启监听后就连接成功了,下面跟 ...

  4. mysql数据库连接不稳定_连接 MySQL 数据库失败频繁的原因探秘

    连接mySQL数据库失败频繁,主要是什么原因造成的? 一年前,我开发了一个网站,租用的是linux下PHP+mySQL的虚拟空间,之前一直工作正常. 近半年来,却频繁出现连接数据库失败错误(一周1~2 ...

  5. java ojdbc 还需要装 oracle client 吗,c# 连接Oracle数据库必须安装客户端吗

    使用 ODAC 的 Net 方式 [email]nxyc_twz@163.com[/email] 大多数应用程序使用 OCI 的ODAC 标准方式来连接 Oracle 数据库服务器.这是使用第三方开发 ...

  6. java oracle数据库连接代码,java连接oracle数据库代码实例(注释详解)

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...

  7. hana数据库连接mysql_如何连接HANA数据库读取表数据

    1, 取保SAP系统与HANA 数据库服务器网络连接 在SE38中运行report RSBDCOS0,ping一下HANA database,确保没有丢包现象发生. 也可以通过tcode:OS01来p ...

  8. eclipse java access数据库连接_eclipse如何连接access数据库实现代码

    1.新建工程,导入jre包,rt.jar rt.jar是1.2版本以上自带的,在jre文件夹里面找到手动导入一下. 2,下载Access_JDBC30.jar文件,附网盘: http://pan.ba ...

  9. wordpress连接mysql数据库_安装wordpress连接mysql数据库问题

    今天新搭建的LNMP环境,安装wordpress博客做测试,安装到填写数据库信息时,一直报错数据库连接错误,重新创建库,重新授权用户,都提示一样的错误,后来授权使用ip地址,连接成功,发一篇博文大家探 ...

最新文章

  1. 熟悉常用的HBase操作,编写MapReduce作业
  2. [转]vim基础入门、语法速探、快捷键与宏
  3. NOI导刊模拟2—电话网络 解题报告
  4. ubuntu系统下Jenkins和tomcat的安装与配置
  5. java设置默认参数_关于java:如何设置默认方法参数值?
  6. 《人月神话》阅读笔记一
  7. 三菱PLC(FX5U)与C#通信说明
  8. 如果编程语言是一门武功绝学
  9. kettle连接mysql 8.0以上数据库所需驱动包
  10. 汤姆猫代码python_IOS 汤姆猫核心代码
  11. 寻找最小生成树的欧拉路径,即一笔画问题
  12. 命令行导入mysql数据库
  13. ipados链接android,iPadOS怎么升级 iPadOS升级教程
  14. Topic ods_base_db not present in metadata after 60000 ms.
  15. WebRTC技术详解
  16. 高并发、高性能、高可用
  17. Iphone开发(七)date picker 和 picker view,较复杂的控件
  18. h5 ios中软键盘弹起后 fixed定位失效
  19. Java中判断输入错误的,判断验证码输入是否正确有关问题
  20. 覆盖vue.js样式_使用Vue.js和Cloudinary在化身上覆盖眼镜/面罩

热门文章

  1. Python的扩展阅读
  2. (int   *)i 与int   increment(int   *     i) 相关理解的整理
  3. 论文阅读:LIF-Seg: LiDAR and Camera Image Fusion for 3DLiDAR Semantic Segmentation
  4. 打开Java之门——一个Java SE小白的学习日志1【极客BOY-米奇】
  5. pycharm获取yelp相关数据(三)
  6. python3列表学习
  7. 入侵sf服务器技术_如何更高效地实现服务器安全巡检管理?
  8. Windows 11 Manager v1.0.6 专业Win11系统优化管理工具便携版
  9. Nor Nand OneNand
  10. java计算机毕业设计跑腿管理系统源码+数据库+系统+lw文档+mybatis+运行部署