日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

輕型數據庫SQLite結合PHP的開發

瀏覽:171日期:2024-02-02 13:26:17

SQLite是一款輕型的數據庫,它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語言相結合,比如Tcl、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數據庫管理系統來講,它的處理速度比他們都快。

SQLite雖然很小巧,但是支持的SQL語句不會遜色于其他開源數據庫,它支持的SQL包括:

ATTACH DATABASE BEGIN TRANSACTION comment COMMIT TRANSACTION COPY CREATE INDEX CREATE TABLE CREATE TRIGGER CREATE VIEW DELETE DETACH DATABASE DROP INDEX DROP TABLE DROP TRIGGER DROP VIEW END TRANSACTION EXPLAIN expression INSERT ON CONFLICT clause PRAGMA REPLACE ROLLBACK TRANSACTION SELECT UPDATE

同時它還支持事務處理功能等等。也有人說它象Microsoft的Access,有時候真的覺得有點象,但是事實上它們區別很大。比如SQLite支持跨平臺,操作簡單,能夠使用很多語言直接創建數據庫,而不象Access一樣需要Office的支持。如果你是個很小型的應用,或者你想做嵌入式開發,沒有合適的數據庫系統,那么現在你可以考慮使用SQLite。目前它的最新版本是 3.2.2,它的官方網站是:http://www.sqlite.org,能在上面獲得源代碼和文檔。同時因為數據庫結構簡單,系統源代碼也不是很多,也適合想研究數據庫系統開發的專業人士。

現在我們開始簡單的介紹,主要我是想講清楚幾個問題,一是如何安裝使用,二是如何跟PHP結合開發。

一、安裝

1. Windows平臺

下載windows下的文件,其實就是一個命令行程序,(下載地址:http://www.sqlite.org/sqlite-3_2_2.zip),這個命令行程序用來包括生成數據庫文件、執行SQL查詢、備份數據庫等等功能。下載后比如我們解壓縮到 D:Downloadssqlitesqlite-3_2_2 這個目錄下,那么我們進入cmd,并且進入該目錄:cd D:Downloadssqlitesqlite-3_2_2D:Downloadssqlitesqlite-3_2_2>sqlite3 test.db# 如果test.db不存在,那么就產生一個數據庫文件,如果存在就直接使用該數據庫文件,相當于mysql中的useSQLite version 3.2.2Enter '.help' for instructionssqlite> # SQLite的提示符,如果想查看命令幫助輸入 .help,在sqlite中所有系統命令都是 . 開頭的:sqlite> .help.databases;;List names and files of attached databases.dump ?TABLE? ...;;;Dump the database in an SQL text format.echo ON|OFFTurn command echo on or off.exit; Exit this program.explain ON|OFF;;;;;Turn output mode suitable for EXPLAIN on or off..header(s) ON|OFF;;;Turn display of headers on or off.help; Show this message.import FILE TABLE;;Import data from FILE into TABLE.indices TABLE Show names of all indices on TABLE.mode MODE ?TABLE?;;Set output mode where MODE is one of: csv;;;Comma-separated values columnLeft-aligned columns.; (See .width) html;;HTML <table> code insertSQL insert statements for TABLE line;;One value per line list;;Values delimited by .separator string tabs;;Tab-separated values tcl;;;TCL list elements.nullvalue STRING;;;Print STRING in place of NULL values.output FILENAME;;;;Send output to FILENAME.output stdout Send output to the screen.prompt MAIN CONTINUE; Replace the standard prompts.quit; Exit this program.read FILENAME Execute SQL in FILENAME.schema ?TABLE?;;;;;Show the CREATE statements.separator STRING;;;Change separator used by output mode and .import.show; Show the current values for various settings.tables ?PATTERN?;;;List names of tables matching a LIKE pattern.timeout MS;Try opening locked tables for MS milliseconds.width NUM NUM ...;;Set column widths for 'column' modesqlite>www.mypchelp.cn# 我們創建一個數據庫catlogsqlite> create table catalog( ...> id integer primarykey, ...> pid integer, ...> name varchar(10) UNIQUE ...> );sqlite># 如果表存在就會提示:SQL error: table catalog already exists# 我們創建索引信息create index catalog_idx on catalog (id asc); # 我們查看表的信息,看有多少個表sqlite> .tableaa;;;;catalog# 查看表的結構:sqlite> .schema catalogCREATE TABLE catalog(id integer primary key,pid integer,name varchar(10) UNIQUE);CREATE INDEX catalog_idx on catalog(id asc);# 給數據表插入一條記錄sqlite> insert into catalog (ppid,name) values ('001','heiyeluren');# 成功無任何提示,如果表達式錯誤提示錯誤信息:SQL error: near 'set': syntax error# 檢索有多少條記錄sqlite> select count(*) from catalog;1# 檢索搜索記錄sqlite> select * from catalog;1|1|heiyeluren

反正使用標準的SQL來操作就沒有問題,不清楚可以去官方網站上查看幫助信息。另外還要說明的是SQLite不支持修改表結構,如果要修改表結構,只有刪除表重新再建立,所以建立表的時候一定要考慮擴展性。估計以后這方面的功能會加強。

2. Linux/Unix 平臺

error: 目前還沒裝過,呵呵,不過估計跟Windows差不多,改天把這部分內容補上。

二、PHP對SQLite的開發

PHP 5開始不再默認支持Mysql,而是默認支持SQLite,可見它的影響力多么大,所以如果你想做SQLite的PHP開發,建議你使用PHP 5.0.0以上版本,我目前使用的是 PHP 5.0.4版本,直接支持SQLite擴展,這里我就不仔細講如何安裝PHP擴展,如果不清楚可以查看PHP相關文檔。這里我主要是講針對SQLite的開發。目前PHP的主流DB類都支持SQLite的驅動,包括PEAR::DB類、ADOdb類都支持,所以使用DB來來做開發也是個好的選擇。

(以下操作為了簡便,都是再Windows xp平臺進行的)

1. 使用PHP操作已經建立好的sqlite數據庫

如果你有一個已經通過sqlite.exe建立好了的數據庫和表結構,那么你就能夠直接對它進行操作。php中針對sqlite的處理函數比較多,你可以查看PHP手冊獲得詳細信息。

我們使用sqlite_open()函數來打開一個sqlite數據庫,它成功返回一個操作資源,失敗返回false,那么以后的所有操作都是在這個資源上進行的,執行一個sql查詢使用sqlite_query函數。

下面我假設你在當前PHP程序目錄下有一個abc.db的sqlite數據庫文件,我們對該文件進行操作:

<?php//打開sqlite數據庫$db = @sqlite_open('abc.db');//異常處理if (!$db) die('Connection Sqlite failed.n');//添加一個叫做foo的數據庫@sqlite_query($db, 'CREATE TABLE foo (bar varchar(10))');//插入一條記錄@sqlite_query($db, 'INSERT INTO foo VALUES ('fnord')');//檢索所有記錄$result = @sqlite_query($db, 'select bar from foo');//打印獲取的結果print_r(sqlite_fetch_array($result));

?>我們看到的輸出結果是:

Array( [0] => fnord [bar] => fnord)

證明我們代碼執行成功,沒有輸入請檢查程序,或者你的數據庫文件是否存在。

那么有了這個基本操作,你就能夠考慮使用更復雜的操作和SQL來操作它,讓它幫你管理信息,你可以做一個留言本,或者做一個CMS系統,我想都是沒有問題的。

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)) {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')) {exit(error_code(-3, LN));}if (!sqlite_query($db, 'CREATE TABLE test (id integer primary key,pid integer,name varchar(10) UNIQUE)')) {exit(error_code(-3, LN));}//插入一條數據if (!sqlite_query($db, ' INSERT INTO test (name) VALUES ('heiyeluren') ')) {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] .'<br>Name: '. $array[name] ;}

/* 錯誤信息代碼函數 */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;}

?>

如果你操作無誤的話,那么程序最后輸出:

ID: 1Name: heiyeluren

我們以上的程序包括了比較完整的功能,有調試、異常處理、存取數據庫等功能,算是一個簡單應用。如果你有興趣也可以進行擴展。

* 結束:

我們基本的操作就講到這里,以后有空我會把內容補全。如果大家有興趣可以去研究一下,也許你的個人主頁就需要這樣的小型數據庫來幫助你。

* 參考文檔:http://www.donews.net/limodou/archive/2004/03/21/7997.aspxhttp://www.linuxsir.org/bbs/showthread.php?p=1213668#post1213668

* SQLite資源官方網站:http://www.sqlite.orgSQL語法: http://www.sqlite.org/lang.html開發文檔:http://www.sqlite.org/docs.html常見問題:http://www.sqlite.org/faq.html下載地址:http://www.sqlite.org/download.html

Author: heiyelurenDate: 2005-8-5

標簽: PHP
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
美女久久久久久| 91成人在线网站| 欧美韩日一区| 国产精品久久观看| 黑森林国产精品av| 免费观看亚洲天堂| 国产精品一区二区三区av| 婷婷久久免费视频| 日韩一区二区三区免费视频| 亚洲精品高潮| 国产欧美亚洲精品a| 国产精品亚洲四区在线观看| 免费一级欧美在线观看视频| 久久精品国产久精国产| 国产a久久精品一区二区三区| 国产一区调教| 亚洲天堂av影院| 精品中文字幕一区二区三区av| 日韩亚洲国产欧美| 四虎在线精品| 欧美日韩夜夜| 久久女人天堂| 香蕉久久99| 久久国产精品久久w女人spa| 婷婷成人av| 精品视频在线观看网站| 久久精品在线| 美国三级日本三级久久99| 18国产精品| 国产精品二区不卡| 狠狠爱成人网| 国产探花一区二区| se01亚洲视频| 综合激情五月婷婷| 久久精品国产久精国产| 日韩精品麻豆| 中文字幕日韩欧美精品高清在线| 久久国产三级| 日本高清不卡一区二区三区视频 | 欧美在线日韩| 成人小电影网站| 日韩中文欧美在线| 精品亚洲自拍| 欧美成人久久| 国产欧美日韩精品一区二区免费 | 爽好多水快深点欧美视频| 欧美一区二区三区久久精品| 精品亚洲二区| 先锋亚洲精品| 福利一区二区三区视频在线观看| 99pao成人国产永久免费视频 | 乱人伦精品视频在线观看| 欧美亚洲tv| 91精品国产福利在线观看麻豆| 免费观看在线综合| 国产一区福利| 亚洲bt欧美bt精品777| 视频在线不卡免费观看| 亚洲少妇诱惑| 久久精品国产亚洲一区二区三区| 女人天堂亚洲aⅴ在线观看| 国产毛片精品| 日韩视频久久| 国产一区二区三区亚洲综合| 蜜桃久久久久久| 色网在线免费观看| 日韩高清一区| 五月天激情综合网| 精品亚洲自拍| 日韩精品高清不卡| 欧美日韩中文一区二区| 国产极品模特精品一二| 亚洲欧美日韩精品一区二区| 国产精品一区二区av日韩在线| 91精品成人| 国产中文欧美日韩在线| 亚洲综合日本| 日本免费一区二区三区四区| 日本aⅴ精品一区二区三区 | 美女视频黄 久久| 蜜桃传媒麻豆第一区在线观看 | 久久国产福利| 久久久久久黄| 国产精品乱战久久久| 中文不卡在线| 国内精品福利| 日韩精品电影| 欧美激情网址| 青草国产精品| 亚洲视频电影在线| 尹人成人综合网| 色婷婷精品视频| 麻豆一区二区三| 日本视频一区二区| 亚洲色图综合| 免费日韩av片| 欧美精品一区二区久久| av资源新版天堂在线| 日本综合视频| 丝袜美腿成人在线| 亚洲综合另类| 国产亚洲激情| 日韩欧美二区| 91欧美在线| 国产一区二区三区久久久久久久久| 日韩精品a在线观看91| 香蕉久久久久久久av网站| 1024精品一区二区三区| 天堂av在线| 欧美亚洲日本精品| 日韩成人免费| 水蜜桃精品av一区二区| 精品72久久久久中文字幕| 欧美一区网站| 欧美精品三级在线| 久久精品99久久久| 欧美日韩一区二区三区不卡视频 | 午夜影院一区| а√天堂8资源中文在线| 国产极品嫩模在线观看91精品| 国产精品手机在线播放| 国产欧美日韩一区二区三区在线| 欧美日本二区| 国产精品久久亚洲不卡| 欧美日一区二区在线观看| 亚洲精品一级二级三级| 综合激情视频| 日本视频中文字幕一区二区三区| 中文字幕亚洲影视| 日韩国产91| 国产精品永久| 国产精品v日韩精品v欧美精品网站 | 欧美成人亚洲| 天堂√中文最新版在线| 日韩不卡视频在线观看| 1024精品一区二区三区| 女人av一区| 丝袜脚交一区二区| 婷婷成人av| 国产乱码精品一区二区三区四区 | 精品国内亚洲2022精品成人| 丰满少妇一区| 97精品国产福利一区二区三区| 天堂а√在线最新版中文在线| 欧洲在线一区| 一区二区亚洲精品| 三级在线观看一区二区| 日韩精品亚洲aⅴ在线影院| 日韩av网站在线免费观看| 国产精品久久久久77777丨| 麻豆精品久久久| 日韩成人高清| 99国产精品久久久久久久成人热| 日韩在线观看一区二区| 国产日本亚洲| 福利视频一区| 婷婷六月综合| 一区在线免费| 日韩**一区毛片| 国产精品一区二区三区www| 97精品在线| 伊人影院久久| 国产精品亚洲综合久久| 国产精品专区免费| 美女国产一区| 国产精品日本一区二区三区在线| 精品72久久久久中文字幕| 欧美一区久久久| 久久xxxx精品视频| 国产精品亚洲四区在线观看 | 国产日韩高清一区二区三区在线 | 亚洲不卡av不卡一区二区| 中文视频一区| 久久99久久久精品欧美| 日韩精品首页| 亚洲精品国产精品粉嫩| 久久精品人人| 亚洲精品一区二区妖精| 国产色噜噜噜91在线精品| 精品精品99| 国产精品色网| 久久的色偷偷| 黄色在线一区| 国产精品a级| 蜜臀91精品国产高清在线观看| 性欧美长视频| 国产精品黑丝在线播放| 中国女人久久久| 麻豆一区二区在线| 好看不卡的中文字幕| 国产精品久久久久久av公交车| 欧美1区2区3区| 久久丁香四色| 视频在线在亚洲| 国产精品成人**免费视频| 欧美影院三区| 国产精品久久久久av蜜臀| 尤物精品在线| 国产 日韩 欧美 综合 一区| 蜜臀精品久久久久久蜜臀|