SQLite的安装和基本使用,可以查看这里。
PHP 5开始不再默认支持Mysql,而是默认支持SQLite,可见它的影响力多么大,所以如果你想做SQLite的PHP开发,建议你使用PHP 5.0.0以上版本,我目前使用的是 PHP 5.0.4版本,直接支持SQLite扩展,这里我就不仔细讲如何安装PHP扩展,如果不清楚可以查看PHP相关文档。
这里我主要是讲针对SQLite的开发。目前PHP的主流DB类都支持SQLite的驱动,包括PEAR::DB类、ADOdb类都支持,所以使用DB来来做开发也是个好的选择。
(以下操作为了简便,都是再Windows xp平台进行的)
1. 使用PHP操作已经建立好的sqlite数据库
如果你有一个已经通过sqlite.exe建立好了的数据库和表结构,那么你就能够直接对它进行操作。php中针对sqlite的处理函数比较多,你可以查看PHP手册获得详细信息。
我们使用sqlite_open()函数来打开一个sqlite数据库,它成功返回一个操作资源,失败返回false,那么以后的所有操作都是在这个资源上进行的,执行一个sql查询使用sqlite_query函数。
下面我假设你在当前PHP程序目录下有一个abc.db的sqlite数据库文件,我们对该文件进行操作:
<?php
//打开sqlite数据库
$db = @sqlite_open("abc.db");
//异常处理
if (!$db) die("Connection Sqlite failed.
");
//添加一个叫做foo的数据库
@sqlite_query($db, "CREATE TABLE foo (bar varchar(10))");
//插入一条记录
@sqlite_query($db, "INSERT INTO foo VALUES ('fnord')");
//检索所有记录
$result = @sqlite_query($db, 'select bar from foo');
//打印获取的结果
print_r(sqlite_fetch_array($result));
?>Array
(
[0] => fnord
[bar] => fnord
)那么有了这个基本操作,你就能够考虑使用更复杂的操作和SQL来操作它,让它帮你管理信息,你可以做一个留言本,或者做一个CMS系统,我想都是没有问题的。
2. 使用PHP建立数据库并且操作
如果你没有任何sqlite.exe之类的工具,那么你也能够通过php来创建一个sqlite数据库,并且对它进行管理。
其实通过sqlite.exe程序建立的数据库,内容是空的,其实只有后来等创建表,添加数据以后,数据库文件才有,那么我们是不是能够手工添加一个文件,比如一个空的 test.db 文件,并且对它进行操作。这是完全可以,下面我们就使用PHP程序来完成创建一个数据库,并且执行简单的建立数据表,插入数据和检索数据的功能。
首先我们来看代码:(代码比较长,但比较容易理解)
<?php
/**
* 文件:sqlite.php
* 功能:对sqlite数据库的处理
* 作者:heiyeluren
* 时间:2005-8-5
*/
define("LN", __LINE__);//行号
define("FL", __FILE__);//当前文件
define("DEBUG", 0);//调试开关
$db_name = "heiyeluren.db";
//创建数据库文件,文件内容为空
if (!file_exists($db_name)) {
if (!($fp = fopen($db_name, "w+"))) {
exit(error_code(-1, LN));
}
fclose($fp);
}
//打开数据库文件
if (!($db = sqlite_open($db_name))) {
exit(error_code(-2, LN));
}
//产生数据表结构
if (!sqlite_query($db, "DROP TABLE test")) {
exit(error_code(-3, LN));
}
if (!sqlite_query($db, "CREATE TABLE test (id integer primary key,pid integer,name varchar(10) UNIQUE)")) {
exit(error_code(-3, LN));
}
//插入一条数据
if (!sqlite_query($db, " INSERT INTO test (name) VALUES ('heiyeluren') ")) {
exit(error_code(-4, LN));
}
//把数据检索出来
if (!($result = sqlite_query($db, "SELECT * FROM test"))) {
exit(error_code(-5, LN));
}
//获取检索数据并显示
while ($array = sqlite_fetch_array($result)) {
echo "ID: ". $array[id] ."<br>Name: ". $array[name] ;
}
/* 错误信息代码函数 */
function error_code($code, $line_num, $debug=DEBUG)
{
if ($code<-6 || $code>-1) {
return false;
}
switch($code) {
case -1: $errmsg = "Create database file error.";
break;
case -2: $errmsg = "Open sqlite database file failed.";
break;
case -3: $errmsg = "Create table failed, table already exist.";
break;
case -4: $errmsg = "Insert data failed.";
break;
case -5: $errmsg = "Query database data failed.";
break;
case -6: $errmsg = "Fetch data failed.";
break;
case -7: $errmsg = "";
break;
default: $errmsg = "Unknown error.";
}
$m = "<b>[ Error ]</b><br>File: ". basename(FL) ." <br>Line: ". LN ."<br>Mesg: ". $errmsg ."";
if (!$debug) {
($m = $errmsg);
}
return $m;
}
?>ID: 1
Name: heiyeluren* 结束:
我们基本的操作就讲到这里,以后有空我会把内容补全。如果大家有兴趣可以去研究一下,也许你的个人主页就需要这样的小型数据库来帮助你。

RSS订阅