2009年7月28日星期二

php调用sqlite


2007-07-10 13:30:03 建议使用php5.0.0以上版本

1.建立测试php文件sqlitetest.php,代码如下:
<?php

//建立数据库连接
$db = @sqlite_open("C:\\wamp\\sqlitemanager\\dbtest.db");

//异常处理
if(!$db) die("Connection Sqlite failed.\n");

//add a table
@sqlite_query($db, "CREATE TABLE table1(id int(4),name varchar(20))");

//add  records
@sqlite_query($db, "INSERT INTO table1 VALUES(1,'zhang')");
//query records
$result = @sqlite_query($db, "SELECT * from table1");

//打印结果
print_r(sqlite_fetch_array($result));

?>

我们看到的输出结果是:

Array ( [0] => 1 [id] => 1 [1] => zhang [name] => zhang )


<?php
/**
 * 文件:sqlite.php
 * 功能:对sqlite数据库的处理
 * 作者:bjllm
 * 时间:2007-7-10
 */

define("LN", _LINE_); //行号
define("FL", _FILE_); //当前文件
define("DEBUG", 0);   //调试开关

$db_name = "C:\\wamp\\sqlitemanager\\dbtest.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")) {        //有test表,不一定要创建结构
 exit(error_code(-3, LN));
}


if (!sqlite_query($db, "CREATE TABLE test (id integer primary key,name varchar(10) UNIQUE)")) {
 exit(error_code(-3, LN));
}

//插入两条数据
if(!sqlite_query($db, "INSERT INTO test(name) VALUES('holly')"))
{
  exit(error_code(-4, LN));
}
if(!sqlite_query($db, "INSERT INTO test(name) VALUES('orang')"))
{
  exit(error_code(-4, LN));
}

//删除数据
if(!sqlite_query($db, "DELETE FROM test WHERE name = 'holly' "))
{
  exit(error_code(-4, LN));
}

//修改数据
if(!sqlite_query($db, "UPDATE test SET NAME = 'tom' WHERE name = 'orang' "))
{
  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]."&nbsp;&nbsp;Name: ". $array[name]."<br>";
}

/*错误信息代码函数*/
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;
}
?>

没有评论: