20070222 php5 sqlite 学习
http://www.yippeesoft.com

今天试验了一下新空间,感觉不错,好像可以用

2.SQlite数据库几个重要的内建语法:
 create table 表名 (字段名1 字段1类型,字段名2 字段2类型);//创建新表
     例:create table test (id int ,name char(20)) //创建表test,拥有两个字段 id 和 name 他们别为整型和定长字符型
 drop table 表名 ;//删除表
     例:drop table test;//删除test表
 create index 索引名 on 表名(字段名); //为给定表或视图创建索引。
     例:create index main on test(id); //为test表以id字段创建索引,索引名为main
 drop index 索引名;//删除索引
     例:drop index main //删除main索引
 insert into 表名 [(字段列表)]values (与字段相对的值列表);//向表中插入新行.[]中为可选内容
     例:insert into test values(1,\’hfly2005\’)&line;insert into test (id,name) values (1,\’hfly2005\’);
 delete from 表名 [where 删除条件]//无条件限定的情况下删除表中所有数据,[]中为可选内容
     例:delete from test where name=\’hfly2005\’;//删除name等于hfly2005的行
 select *[&line;字段列表]from 表名 [ where 选择条件]//从表中选择所有或符合条件的数据。
     例:select * from test //从test表中选出所有内容
 replace into 表名 (字段列表) values (与字段相对的值列表) //类似insert的功能
     例:replace into test (name) values(\'hfly2005\')//插入新行,id的值为空,name的值为hfly2005
 alert  table  //(3.2.0以上版本支持)修改已存在表的结构  ,支持rename table 和 add columngj 但是不支持 drop

 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)) &leftsign;
 if (!($fp = fopen($db_name, "w+"))) &leftsign;
  exit(error_code(-1, LN));
 &rightsign;
 fclose($fp);
&rightsign;
//打开数据库文件
if (!($db = sqlite_open($db_name))) &leftsign;
 exit(error_code(-2, LN));
&rightsign;
//产生数据表结构
if (!sqlite_query($db, "DROP TABLE test")) &leftsign;
 exit(error_code(-3, LN));
&rightsign;
if (!sqlite_query($db, "CREATE TABLE test (id integer primary key,pid integer,name varchar(10) UNIQUE)")) &leftsign;
 exit(error_code(-3, LN));
&rightsign;
//插入一条数据
if (!sqlite_query($db, " INSERT INTO test (name) VALUES (\'heiyeluren\') ")) &leftsign;
 exit(error_code(-4, LN));
&rightsign;
//把数据检索出来
if (!($result = sqlite_query($db, "SELECT * FROM test"))) &leftsign;
 exit(error_code(-5, LN));
&rightsign;

//获取检索数据并显示
while ($array = sqlite_fetch_array($result)) &leftsign;
 echo "ID: ". $array[id] ."<br>Name: ". $array[name] ;
&rightsign;

/* 错误信息代码函数 */
function error_code($code, $line_num, $debug=DEBUG)
&leftsign;
 if ($code<-6 &line;&line; $code>-1) &leftsign;
  return false;
 &rightsign;
 switch($code) &leftsign;
  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.";
 &rightsign;

 $m = "<b>[ Error ]</b><br>File: ". basename(FL) ." <br>Line: ". LN ."<br>Mesg: ". $errmsg ."";
 if (!$debug) &leftsign;
  ($m = $errmsg);
 &rightsign;
 return $m;
&rightsign;

?>

如果你操作无误的话,那么程序最后输出:

ID: 1
Name: heiyeluren

历史博文

标签:, , , ,
七月 26, 2007 at 11:05 下午 by yippee 1,002 次
Category: Dev
Tags: , , , ,