首页 | 博客群 | 公社 | 专栏 | 论坛 | 图片 | 资讯 | 注册 | 帮助 | 博客联播 | 随机访问
Java 3D API官方教程2.5 Geometry类[翻译]- -| 回首页 | 2005年索引 | - -SQLite介绍(二)[翻译]

SQLite 介绍(一)[翻译]

关键词SQLite    PHP    MySQL    PostgreSQL                                          

作者 Ilia Alshanetsky

2004 316

目标读者
介绍
啥是SQLite?
它对我有啥用?
SQLite
扩展类库
安装SQLite
使用SQLite
链式查询
新的函数
SQLite
迭代器
工具函数
缓存优势
客户化函数
概要
关于作者

关于译者

目标读者

本文是为那些对学习SQLite 扩展类库感兴趣的PHP程序员而写的.本文将向读者介绍PHP SQLite扩展类库的功能,并且对SQLite与其它数据库系统的优势关系做了概要介绍.

假设读者对PHPSQL有个基本的了解.如果有过MySQL或者PostgreSQL的经验那就是最好不过了.

介绍

在近几个月以来,你也许听过一个新的PHP数据库扩展类库SQLite.好多人认为SQLite是自有面包片以来最好的东东,其提供了一个快速的访问平面文件数据库的接口.并且提供了访问大容量数据库的简洁的手段,但是并没有所意想的功能或者速度上的损失.在本文中,我们将探讨这个新的激动人心的扩展库,并且希望以此来验证其传说中的优势和好处.

啥是SQLite?

SQLite 是实现了SQL 92标准的一个大子集的嵌入式数据库.其以在一个库中组合了数据库引擎和接口,能将所有数据存储于单个文件中而著名.我觉得SQLite的功能一定程度上居于MySQL PostgreSQL之间.尽管如此,在性能上面,SQLite常常快2-3 (甚至更多).这利益于其高度调整了的内部架构,因为它除去了服务器端到客户端和客户端到服务器端的通信.

所有这些都集在一个包中,也仅仅比MySQL的客户端的库稍微大一点.而令人印象深刻的特点是你可将你的整个数据库系统放在其中.利用非常高效的内存组织,SQLite只需在很小的内存中维护其很小的尺寸,远远比其它任何数据库系统都小.这些特点使得其成为在需要高效地应用数据库的任务中一个非常方便的工具.

它对我有啥用?

除了速度和效率,SQLite还有其它好多的优势使得其能成为许多任务中一个理想的解决方案.因为SQLite的数据库都是简单文件,因此无须一个管理队伍花时间来构造复杂的权限结构来保护用户的数据库.因为权限通过文件系统自动进行.这也同时意味着(数据库空间的大小只与环境有关,与本身无关)无段特殊的规则来了解用户磁盘空间.用户可以从创建他们想要的任意多的数据库和对其对这些数据库的绝对控制权而得到好处.

数据库就是一个文件的事实使用SQLite可以轻易地在服务器间移动.SQLite也除去了需要大量内存和其它系统资源的伺候进程.即使当数据库在大量地使用时也是如此.

SQLite 扩展库

作为最新的数据库扩展库,SQLite很幸运地没有遗留代码.不象其它的数据库比如MySQL,它必须为了保持向下兼容而维护一大堆陈旧过时的行为特性.它也使用扩展库可以利用最新的PHP特性来获得最高级的性能和功能.扩展库的开发人员努力地使用户可以很方便地将其它数据库迁移到SQLite.并且同时保持已经用PHP实现的界面.

SQLite
也支持面向过程接口中数据库资源传递的灵活机制.使得其可以一样容易地从MySQLPostgreSQL中迁移而来,MySQL中数据库资源是向后传递的( passed last),PostgreSQL中是向前传递的(passed first).

SQLite
也具有强大的面向对象接口来从数据库中高效地存取数据.减少了你实现你对于过程接口的面向对象外包的时间.正如如下示例所示,面向对象接口可以避免你一次传递所有资源.( passing resources altogether.)

<?php

// 构造新数据库(面向对象接口)
$db = new SQLiteDatabase("db.sqlite");

// 创建foo表并插入示例数据
$db->query("BEGIN;
        CREATE TABLE foo(id INTEGER PRIMARY KEY, name CHAR(255));
        INSERT INTO foo (name) VALUES('Ilia');
        INSERT INTO foo (name) VALUES('Ilia2');
        INSERT INTO foo (name) VALUES('Ilia3');
        COMMIT;"
);

// 执行一个查询    
$result = $db->query("SELECT * FROM foo");
// 迭代地读取行
while ($result->valid()) {
    
// 获得当前行数据
    
$row = $result->current();     
    
print_r($row);
// 前进到下一行
    
$result->next();
}

// 不一定需要此句PHP会自动关闭链接
unset($db);

?>

安装 SQLite

PHP 5.0安装SQLite 是很轻易的事,因为其已经捆绑了SQLite扩展和库.因此所有你需要做的是在人的配置命令行中加入–with-sqlite 就可以了. 但我仍然推荐你安装一个SQLite.这仅仅是因为这个扩展库是二进制的,你可以在没有PHP的情况下也可以打开和操纵SQLite数据库.这对于你在各种时间趋势下来调试和执行以及测试你的查询是很方便的.经常地,你会发展捆绑的SQLite库有点过时了,因此,用外部的库来编译你的PHP程序,可以使得你能获益于扩展库的最新修正和SQLite的最新特性.这也允许你在无需重新编译PHP的情况下来更新你的SQLite.

用一个外部的扩展库来编译SQLite扩展用如下命令就可以了            –with-sqlite=/path/to/lib/.

我同样应当提到的是SQLite扩展同时提供了一系列可以理解的测试SQLite所支持的单个函数和方法面向对象和面向过程的测试.这不仅仅是理解如何运用每个函数和方法工作的绝佳的示例资源.也提供了预期的的输出,使你可以看见每个操作的最终结果.

【作者: wuxingblog】【访问统计:】【2005年08月1日 星期一 23:49】【注册】【打印

搜索

Google

Trackback

你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=2456607

博客手拉手

PHP,MYSQL,APACHE服务器配置
apache php jsp mysql phpmyadmin全攻略
apache php jsp mysql phpmyadmin全攻略
安装配置 IIS PHP MySQL Zend Optimizer GD库 phpMyAdmin
安装配置 IIS PHP MySQL Zend Optimizer GD库 phpMyAdmin

回复

- 评论人:lolo   2007-09-04 11:00:01   

强烈的顶顶顶!!!

15G空间=5个网站=500元/年 可免费试用
www.abcnic.com QQ:1012727
5GB 独立WEB空间、5GB 企业邮箱空间、5GB MSSQL数据库
IIS连接数据 500 个、500GB/月流量、共享日志文件空间

数据库功能
支持5GB MSSQL数据库空间,5个用户数据库、Access

主机功能支持
采用安全稳定的Win2003 .net2.0 架构
支持ASP、PHP、ASP.NET、PERL等脚本、支持自定义CGI
全面支持.net2.0版本,独立的Application应用池,
支持SSI(Shtml),支持FrontPage扩展
可免费自行绑定5个域名、500个解析、500个子域名

企业邮箱功能
赠送5GB 超大企业邮箱,500个Email企业邮箱用户
自动回复、自动转发、POP3、SMTP收发信、SMTP发信认证
邮件过滤、邮件拒收、邮件夹管理、邮件域管理、定制邮件数

验证码:   
评论内容: