<?php
//自 PHP 5.3.0 起默认启用 SQLite3 扩展。可以在编译时使用 --without-sqlite3 禁用 SQLite3 扩展。Windows 用户必须启用 php_sqlite3.dll 才能使用该扩展。自 PHP 5.3.0 起,这个 DLL 被包含在 PHP 的 Windows 分发版中。
//1.连接
class MyDB extends SQLite3{
   function __construct() {
      $this->open('data.db');//要用全路径,防止其他目录找不到
   }
}
$db = new MyDB();
if(!$db){
   echo $db->lastErrorMsg();
 } else {
   echo "Opened database successfully\n";
}
//2.创建表或插入、更新与删除
$sql =<<<EOF
   CREATE TABLE COMPANY
   (ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL);
EOF;

$ret = $db->exec($sql);
if(!$ret){
  echo $db->lastErrorMsg();
} else {
  echo "Table created successfully\n";
  //echo $db->changes(), " Record deleted successfully\n";//最近一次的 SQL 语句更新或插入或删除的数据库行数。
}
$db->close();
//插入、更新时与创建表,只是sql语句不同,其它都一样。如下:
$sql =<<<EOF
  INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
  VALUES (1, 'Paul', 32, 'California', 20000.00 );

  INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
  VALUES (2, 'Allen', 25, 'Texas', 15000.00 );

  INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
  VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );

  INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
  VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );
EOF;
$sql =<<<EOF
  UPDATE COMPANY set SALARY = 25000.00 where ID=1;
EOF;
$sql =<<<EOF
  DELETE from COMPANY where ID=2;
EOF;
//3.查询
$sql =<<<EOF
   SELECT * from COMPANY;
EOF;

$ret = $db->query($sql);
while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
   echo "ID = ". $row['ID'] . "\n";
   echo "NAME = ". $row['NAME'] ."\n";
   echo "ADDRESS = ". $row['ADDRESS'] ."\n";
   echo "SALARY =  ".$row['SALARY'] ."\n\n";
}
echo "Operation done successfully\n";
$db->close();
//其他函数,SQLite3::escapeString ( string $value )该例程返回一个字符串,在 SQL 语句中,出于安全考虑,该字符串已被正确地转义。