|
之前從網(wǎng)上看可以通過(guò)直接的方法對(duì)sqlite數(shù)據(jù)庫(kù)進(jìn)行操作。但好像只是支持sqlite2.對(duì)sqlite3不支持。于是又看了看原來(lái)要使用PDO進(jìn)行連接。 講自己寫(xiě)的一個(gè)封裝的代碼放出來(lái)。 需要注意的就是ROOT是項(xiàng)目的絕對(duì)路徑。$module之類(lèi)的參數(shù)根據(jù)實(shí)際情況需要。 DT_URL是失敗后的一個(gè)跳轉(zhuǎn)url。 因?yàn)閟qlite在連接失敗后發(fā)現(xiàn)自動(dòng)創(chuàng)建一個(gè)空文件。所以在connect_sqlite方法中直接判斷若此文件不存在則不進(jìn)行庫(kù)連接操作。 ====================================================================================== <?php /** * 此類(lèi)只兼容sqlite3 * @author hanxiaoyue */ class db_sqlite { //打開(kāi)sqlite數(shù)據(jù)庫(kù) function connect_sqlite($dbname,$module) { $conn = null; if(file_exists(ROOT.'/db/'.$module.'/'.$dbname)) { $dbPath = 'sqlite:'.ROOT.'/db/'.$module.'/'.$dbname; try { $conn = new PDO($dbPath); $conn->beginTransaction(); } catch(PDOException $e) { echo 'Exception is:'.$e->getMessage(); } return $conn; } else { exit(header('location:'.DT_URL)); } } //打開(kāi)datafarm鏈接 function connect_datafarm_sqlite($dbname) { $conn = null; if(file_exists(ROOT.'/data/datafarm/'.$dbname)) { $dbPath = 'sqlite:'.ROOT.'/data/datafarm/'.$dbname; try { $conn = new PDO($dbPath); $conn->beginTransaction(); } catch(PDOException $e) { echo 'Exception is:'.$e->getMessage(); } return $conn; } else { exit(header('location:'.DT_URL)); } } //查詢操作 function query_sqlite($conn,$sql) { $result = array(); try { $sth = $conn->prepare($sql); $sth->execute(); //獲取結(jié)果 $result = $sth->fetchAll(); } catch(PDOException $e) { echo 'Exception is:'.$e->getMessage(); } return $result; } //查詢總記錄數(shù) function query_count($conn,$sql) { $result = 0; try { $sth = $conn->prepare($sql); $sth->execute(); //獲取結(jié)果 $vec = $sth->fetchAll(); $result = $vec[0]['c']; } catch(PDOException $e) { echo 'Exception is:'.$e->getMessage(); } return $result; } //add,update,delete執(zhí)行操作 function exec_sqlite($conn,$sql) { $count = 0; try { $count = $conn->exec($sql); } catch(PDOException $e) { $conn->rollBack(); echo 'Exception is:'.$e->getMessage(); } return $count; } /** * 提交事務(wù)。針對(duì)執(zhí)行exec_sqlite后 */ function commit_sqlite($conn) { $conn->commit(); } //關(guān)閉連接 function close_sqlite($conn) { $conn=null; } } ?> |
|
|