sqlite在php中是默认安装的本地小型化数据库,类似于xml建立的本地小型数据库,在网站配置方面比较适用。
sqlite.class.php文件:
<?php class sqliteDB{ private $sqliteResult; private $error = ''; private $createTable = <<<TABLE /*初始化创建数据表*/ CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, DDRESS CHAR(50), SALARY REAL); /*初始化插入数据*/ INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 ); TABLE; function __construct($fileName){
//如果没有数据库,则创建数据库,并且生成数据表及插入数据 if(file_exists($fileName)){ $this->sqliteResult = new MyDB($fileName); if(!$this->sqliteResult){ die("Database error:" . $this->sqliteResult->lastErrorMsg()); } }else{ $this->sqliteResult = new MyDB($fileName); if(!$this->sqliteResult){ die("Database error:" . $this->sqliteResult->lastErrorMsg()); } $this->execute($this->createTable); } } function execute($sql){ $this->error= $this->sqliteResult->exec($sql); } function queryDB($sql){ $result = $this->sqliteResult->query($sql); $i = 0; while($row = $result->fetchArray(SQLITE3_ASSOC) ){ $arr[$i]["ID"] = $row["ID"]; $arr[$i]["AGE"] = $row["AGE"]; $arr[$i]["NAME"] = $row["NAME"]; $arr[$i]["ADDRESS"] = $row["ADDRESS"]; $arr[$i]["SALARY"] = $row["SALARY"]; $i += 1; } return $arr; } function __destruct(){ if(!$this->error){ die("Database error:" . $this->sqliteResult->lastErrorMsg()); } $this->sqliteResult->close(); } } class MyDB extends SQLite3{ function __construct($fileName){ $this->open($fileName); } }
index.php文件:
<?php include_once("sqlite.class.php"); $sqliteInsert =<<< EOF 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; $sqliteDelete =<<< EOF DELETE from COMPANY where ID=2; EOF; $sqlUpdata =<<< EOF UPDATE COMPANY set SALARY = 28666.00 where ID=1; EOF; $sqlSelect =<<<EOF SELECT * from COMPANY; EOF; $db = new sqliteDB("test.db"); foreach($db->queryDB($sqlSelect) as $value){ if($value["ID"] == 3){ $isNull = true; } } if(!$isNull){ //增加数据 $db->execute($sqliteInsert); } //删除数据 $db->execute($sqliteDelete); //修改数据 $db->execute($sqlUpdata); echo "<pre>"; //查询数据 print_r($db->queryDB($sqlSelect)); echo "</pre>";