《PHP使用PDO連接SQLITE3》要點:
本文介紹了PHP使用PDO連接SQLITE3,希望對您有用。如果有疑問,可以聯系我們。
PHP可以通過直接的方法對sqlite數據庫進行操作。不過提但是使用PDO進行連接。這里是一個封裝示例,希望能幫到您。
注意:
sqlite在連接失敗后會自動創建一個空數據庫文件,所以在connect_sqlite方法中直接判斷若此文件不存在則不進行庫連接操作。
PHP用PDO調用SQLITE示例:
$sqlitedb = new db_sqlite; $conn = $sqlitedb->connect_sqlite('./db/sqlite3.db',''); $sqlitedb->exec_sqlite($conn,"insert into tt2 values(2,'http://www.snjht.com')"); $sqlitedb->commit_sqlite($conn); $rs = $sqlitedb->query_sqlite($conn,'select * from tt2'); foreach($rs as $k=>$v) { $v1 = $v['name']; #$v1 = mb_convert_encoding($v1,"gb2312","utf-8"); #$v1 = mb_convert_encoding($v1,"utf-8","gb2312"); echo $v1,'<br />'; } $sqlitedb->close_sqlite($conn);
PDO連接SQLITE3的通用類:
/** * 此類只兼容sqlite3 * @author hanxiaoyue */ class db_sqlite { //打開sqlite數據庫 function connect_sqlite($dbname,$module) { $conn = null; if(file_exists($dbname)) { $dbPath = 'sqlite:'.$dbname; try { $conn = new PDO($dbPath); $conn->beginTransaction(); } catch(PDOException $e) { echo 'Exception is:'.$e->getMessage(); } return $conn; } else { exit('連接時出現錯誤!'); } } //打開datafarm鏈接 function connect_datafarm_sqlite($dbname) { $conn = null; if(file_exists($dbname)) { $dbPath = 'sqlite:'.$dbname; try { $conn = new PDO($dbPath); $conn->beginTransaction(); } catch(PDOException $e) { echo 'Exception is:'.$e->getMessage(); } return $conn; } else { exit('啟動事務時出現錯誤!'); } } //查詢操作 function query_sqlite($conn,$sql) { $result = array(); try { $sth = $conn->prepare($sql); $sth->execute(); //獲取結果 $result = $sth->fetchAll(); } catch(PDOException $e) { echo 'Exception is:'.$e->getMessage(); } return $result; } //查詢總記錄數 function query_count($conn,$sql) { $result = 0; try { $sth = $conn->prepare($sql); $sth->execute(); //獲取結果 $vec = $sth->fetchAll(); $result = $vec[0]['c']; } catch(PDOException $e) { echo 'Exception is:'.$e->getMessage(); } return $result; } //add,update,delete執行操作 function exec_sqlite($conn,$sql) { $count = 0; try { $count = $conn->exec($sql); } catch(PDOException $e) { $conn->rollBack(); echo 'Exception is:'.$e->getMessage(); } return $count; } /** * 提交事務。針對執行exec_sqlite后 */ function commit_sqlite($conn) { $conn->commit(); } //關閉連接 function close_sqlite($conn) { $conn=null; } }
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/87.html