Php sqlite出自TechWiki
[編輯] 介紹
[編輯] 安裝[編輯] for Linux(rpm)I、下載 SQLite wget http://www.sqlite.org/sqlite-3.5.4.tar.gz
tar zxvf sqlite-3.5.4.tar.gz cd sqlite-3.5.4 ./configure make make install ps.若make的時候有發生找不到tcl相關的library時,可以利用下列指令: ./configure --disable-tcl --prefix=/usr/local/sqlite-3.3.5
apt-get install libsqlite3-tcl
[編輯] for linux(套件管理程式安裝)可以利用 apt-get(Ubuntu/Debian)或 yum(Fedora)來直接下載,
若 SQLite 要與 PHP 搭配使用,則需要為 PHP 特別安裝套件,可利用各個 distros 的套件管理軟體來安裝(以Ubuntu為例):
[編輯] for Windows若要下載命令列模式的 SQLite 程式來存取與修改 SQLite 資料庫,可以至(http://www.sqlite.org/download.html)下載預先編譯過的程式。
1、到這裡(http://pecl4win.php.net/ext.php/php_sqlite.dll)下載 php_sqlite.dll 2、php.ini 加上 extension=php_sqlite.dll 3、重新啟動 Web Server 即可。
PHP 5 已經包含 SQLite 模組了,所以只需要載入模組即可。 修改 php.ini,將 ;extension=php_sqlite.dll 將前面的分號去掉。 最後一樣重新啟動 Web Server 即可。 [編輯] 如何使用sqlite(command-line)
[編輯] 建立資料庫檔案用 sqlite 建立資料庫的方法很簡單,只要在 shell 下鍵入:sqlite db_name 如果目錄下沒有 db_name,sqlite 就會建立這個資料庫。 進入了sqlite之後,會看到以下文字: SQLite version 2.8.17 Enter ".help" for instructions sqlite> 這時如果使用.help可以取得求助,.quit則是離開 所有的SQL指令都是以分號(;)結尾的。如果遇到兩個減號(--)則代表註解,sqlite 會略過去。
[編輯] 建立資料表(table)假設我們要建一個名叫 tbl 的資料表,只要鍵入以下指令就可以了: sqlite > create table tbl(one, two); 這樣我們就建立了一個名叫 tbl 的資料表,裡面有 one、two 兩個欄位。 create table指令的語法為:create table table_name(field1, field2, field3, ...); table_name 是資料表的名稱;fieldx 則是欄位的名字; sqlite 的欄位不會檢查是屬於哪一種資料型態:sqlite的欄位可以儲存任何東西:文字、數字、大量文字(blob),它會在適時自動轉換。
[編輯] 加入一筆資料接下來我們要加入資料了,語法為: insert into table_name values(data1, data2, data3, ...); 例如: insert into tbl values ('hello!', 10); insert into tbl values ('goodbye’, 20); 如果該欄位沒有資料,我們可以填NULL。
[編輯] 查詢資料利用 SQL 語法裡的 select : select columns from table_name where expression;
如果資料太多了,我們或許會想限制筆數: select * from tbl limit 10; 有時候我們只想知道資料庫一共有多少筆資料: select count(*) from film;
[編輯] 如何更改或刪除資料瞭解 select 的用法非常重要,因為要在 sqlite 更改或刪除一筆資料,也是靠同樣的語法。 例如有一筆資料打錯了,可利用這樣的指令來修改: update tbl set one = 'hello!' where one='hollo!'; 就會把one欄位裡,被打成 hollo! 的那筆(或多筆)資料,改回成hello!。
[編輯] 其他 sqlite 的特別用法1、sqlite 可以在 shell 底下直接執行命令:
sqlite3 ur_db.db ".dump" > output.sql 或 echo '.dump' | sqlite ur_db.db | gzip -c > ur_db.dump.gz
或 zcat ex1.dump.gz | sqlite3 ex2
3、查詢資料庫的 schema
$ sqlite3 db_name SQlite vresion 2.817 Enter ".help" for instructions sqlite> select * from sqlite_master; type = table name = tbl tbl_name = tbl rootpage = 3 sql = create table tbl(title, length) sqlite>
sqlite> .mode list sqlite> select * from tbl; aaa|232 bbb|454
sqlite> .separator ", " sqlite> select * from tbl; aaa, 232 bbb, 454 sqlite>
sqlite> .mode line sqlite> select * from tbl; title = aaa length = 232 title = bbb length = 454 sqlite>
sqlite> .mode column sqlite> select * from tbl; title length ---------- ---------- aaa 232 bbb 454 sqlite>
sqlite> .mode insert
sqlite> select * from tbl;
INSERT INTO table VALUES('aaa',232);
INSERT INTO table VALUES('bbb',454);
sqlite>
sqlite> .mode html sqlite> select * from tbl; <TR><TH>title</TH><TH>length</TH></TR> <TR><TD>aaa</TD> <TD>232</TD> </TR> <TR><TD>bbb</TD> <TD>454</TD> </TR> sqlite>
[編輯] 查詢資料庫的 schema
列出資料庫中的資料表,利用 ".tables": sqlite> .tables tbl sqlite>
sqlite> .schema create table tbl(title, length); sqlite>
[編輯] PHP 與 SQLite[編輯] 安裝[編輯] Linux利用 PEAR installer 來安裝,利用下列指令:pecl install sqlite
# apt-get install php4-sqlite
# apt-get install php5-sqlite
[編輯] Windows
#需先下載DLL版本的SQLite extension,先到這裡(http://pecl4win.php.net/ext.php/php_sqlite.dll)下載 php_sqlite.dll #php.ini 加上 extension=php_sqlite.dll #重新啟動 Web Server 即可。
[編輯] 範例1
<?PHP $db = sqlite_open('ex3.db', 0666, $sqliteerror); $query = sqlite_query($db, "SELECT * FROM tbl"); var_dump($query); sqlite_close($db); ?>
[編輯] 範例2sqlite_array_query 是另一種查詢的方法,結果將回傳一個陣列,並且將內容輸出。下面是一個簡單的範例: <?PHP $db = sqlite_open('ex3.db', 0666, $sqliteerror); $query = sqlite_array_query($db, "SELECT * FROM tbl", SQLITE_ASSOC); //Object-oriented style //$dbhandle = new SQLiteDatabase('ex3.db'); //$query = $dbhandle->arrayQuery('SELECT * FROM tbl', SQLITE_ASSOC); foreach ($query as $entry) { echo Title: ' . $entry['title'] . ' Length: ' . $entry['length']; echo "<br>"; } ?> 這邊要注意的點是,除了一般的寫法之外,還有物件導向的寫法,至於要選用哪一種,就看使用者習慣。
|
