站长学院通行证

 

返回“站长学院”网站首页

 当前位置 → 中国站长学院网络编程Php编程 → 浏览正文


TAG:  PHP 教程 数据库 SQLite

PHP开发教程(Part9): 文件型数据库SQLite


作者:中国站长学院(整理)     来源:互联网     点击数:     更新时间:2007年11月19日

【字体: 】             【背景色 杏仁黄 秋叶褐 胭脂红 芥末绿 天蓝 雪青 灰 银河白(默认色) 】    【收藏本文】   【打印


如果你来这里是想学习基本的PHP4或者PHP5知识,那这就是为你准备的,开始享受吧! 

    如果你一直都很专心,那么你现在就知道如何使用PHP的MySQL API来执行查询和处理结果集了。你甚至也许已经开始考虑如何重新编写你的站点以运行MySQL数据库了。所有这些都是好事情,这意味着你对使用PHP的数据库支持来为你的应用提供动力感觉很得心应手了,但是还需要进一步的深入。 

    正如你在第八章中(《PHP开发经典教程(Part 8): 数据库操作》,http://tech.it168.com/o/2007-09-20/200709201021747.shtml)所见,在PHP 5.0中对MySQL的支持不像它过去那样简单了。PHP现在需要你在允许你将你的脚本连接至MySQL数据库之前做所有的关于版本和使用的库的决定而不是直接支持MySQL。如果你比较懒惰(但心里明白,我们都知道你懒惰),你可能宁愿尝试一个更简单的选择:SQLite数据库引擎。 

    内建的SQLite支持是PHP5.0的新特征,它为用户提供了一种快速、高效而且能完成工作的轻量级数据库系统。因为在PHP 5.0中,默认情况下它能够起作用,所以它提供了一种可行的对于MySQL的替代;你可以直接使用它而不需要在版本检查和依赖库的下载上花费时间;只需要安装PHP 5然后开始打字即可。那就是为什么我专门为其投入了一个完整的教程。

SQLite是什么? 

    在进入代码之前,让我们确认你对SQLite是什么(及不是什么)有了一个清楚的认识。和MySQL不同,MySQL按照客户-服务器的模式来运行,而SQLite是一种基于文件的数据库引擎,而且使用文件I/O(输入/输出)函数来存储和读取来自磁盘上文件的数据库。它也比MySQL小很多很多(SQLite命令行版本的大小小于200KB)而且支持你所熟悉的大部分SQL命令。
这个小尺寸不应该欺骗得了你,然而根据官方SQLite Web站点,SQLite支持数据库增长到2000G字节大小而且实际上在某种情况下要比MySQL速度更快。SQLite数据库文件易于携带,而且创建于Windows平台下的SQLite数据库在*NIX平台下工作的很好,反之亦然。 

    SQLite最吸引人的方面之一就是它是完全无类型的。SQLite数据库中的字段不需要与特定类型相关联,而且即使它们相关联,你仍然可以向这些字段中插入不同类型的值(对此有一个例外,但我会在稍后谈到它)。这点是重要的,因为它意味着如果你担心错误类型的值进入你的表格,那么你需要在你的应用程序中编写代码来实现类型检查。
在MySQL和SQLite之间另一个重要的差异在于它们的许可策略:与MySQL不同,SQLite源代码是完全公众域的,这意味着你无论在商业还是非商业产品中均可以选择使用和分发它。 

    请看http://sqlite.org/copyright.html以获得更多的关于这方面的信息。 

    为了一起使用SQLite和PHP,你的PHP必须包含SQLite。默认情况下,在PHP5的UNIX和Windows版本中,这个功能是起作用的。 

    阅读更多关于这方面的内容请参阅http://www.php.net/manual/en/ref.sqlite.php。 

    然而,如果你是PHP 4.x版本的用户,那么别灰心,你依然可以通过手动下载和安装来自http://snaps.php.net (Windows)的php_sqlite.dll文件或者来自http://pecl.php.net/package/SQLite(UNIX)的最新的tar格式的包来使用SQLite。你不需要下载其他任何东西;SQLite的‘客户端’就是它自身的引擎。

SQL命令 

    和MySQL一样,你可以使用一般的SQL命令来和SQLite数据库交换作用。SQLite所使用的准确的SQL语法列在http://sqlite.org/lang.html上面,但对大部分操作来说,SQL命令是标准的。 

    下面是一个例子,它建立了我将在本教程中使用的表格:

 

C:\WINDOWS\Desktop\sqlite>sqlite library.db 
SQLite version 2.8.15
Enter ".help" for instructions
sqlite> create table books (
...> id integer primary key,
...> title varchar(255) not null,
...> author varchar(255) not null
...>);
sqlite> insert into books (title, author) values
('The Lord Of The Rings', 'J.R.R. Tolkien');
sqlite> insert into books (title, author) values
('The Murders In The Rue Morgue', 'Edgar Allen Poe');
sqlite> insert into books (title, author) values
('Three Men In A Boat', 'Jerome K. Jerome');
sqlite> insert into books (title, author) values
('A Study In Scarlet', 'Arthur Conan Doyle');
sqlite> insert into books (title, author) values
('Alice In Wonderland', 'Lewis Carroll');
sqlite> .exit
 

    你可以通过SQLite命令行程序交互式或者非交互式的输入上述命令,SQLite命令行程序可以Windows和Linux平台下的编译好的二进制文件形式从http://sqlite.org/download.html中得到。SQLite 2.* 是当前用于PHP两个分支中的版本,同时SQLite 3.*预期支持PDO和之后的PHP5.*版本。 

    将下载的文件解压到你选择的一个目录中,在你的shell或者DOS窗口中用cd命令进入到该目录然后输入‘sqlite’。你可以看到SQLite版本信息和下面的一行: 
    Enter ".help" for instructions 

    请阅读http://sqlite.org/sqlite.html以获得更多的关于如何使用命令行程序的信息。 
    一旦将资料输入到数据库文件library.db中,立即运行SELECT查询以检查是否一切情况工作良好:

sqlite> select * from books;
1|The Lord Of The Rings|J.R.R. Tolkien 
2|The Murders In The Rue Morgue|Edgar Allen Poe
3|Three Men In A Boat|Jerome K. Jerome
4|A Study In Scarlet|Arthur Conan Doyle
5|Alice In Wonderland|Lewis Carroll
 

    如果你看到和上述输出一样的结果,那么你已经准备好可以出发了。

下一页
本文共 6 页,第  [1]  [2]  [3]  [4]  [5]  [6]  页


责任编辑:忧郁的秋天

注册投稿

收藏本文到  >>>

相关文章

phpcms被ku6网正式收购05/01 
模板教程【Pagetitle 标记】04/11 
模板教程【Prenext 标记】(十04/11 
模板教程【Pagebreak 标记】04/11 
模板教程【Pagelist 标记】(04/11 
模板教程【List 标记】(十一)04/11 
模板教程【Channelartlis04/11 
模板教程【Mynews 标记】(九)04/11 
模板教程【Flink 标记】(八)04/11 
模板教程【Vote 标记】(七)04/11 
模板教程【Mytag 标记】(六)04/11 
模板教程【Type 标记】(四)04/11 
模板教程【Channel 标记】(三04/11 
模板教程【Field 标记】(二)04/11 
模板教程【Arclist 标记使用实04/11 
DedeCMS模板制作使用实例教程序04/11 

推荐导读

热门资讯

资讯快报

论坛新贴

返回首页

关于我们 - 帮助(?) - 广告服务 - 诚征英才 - 友情链接 - 网站地图 - 站长BLOG

返回网站顶部

Copyright © 2007 中国站长学院(CNZZXY.COM). All Rights Reserved
站长学院服务资咨热线:0755-84289786    业务合作:(0)13554938953  (0)13423986856    网络宽带及主机提供:深圳傲网科技
粤ICP备08006968号   站长:忧郁的秋天(向管理员发邮件)   站长交流QQ群①:1815595   站长交流QQ群②:32960074