sqlite:詳細參考《PHP5權威程式設計》
1.程式碼例項
準備工作:需要安裝sqlite擴充套件
並在php.ini中開啟php_pdo_sqlite.dll檔案重啟
php(php_fpm)phpinfo()檢視
sqlite 經常報warning 所以在函式前面加@很有必要
try {
$dbh = new PDO(`sqlite:crm.db`) or die(`create db failed`);
//建表
$dbh->exec("CREATE TABLE myweishanli(id integer,name varchar(255));");
$dbh->exec("INSERT INTO TEST(id,name) VALUES (1,`MAOMAO`)");
$dbh->beginTransaction();
$sth = $dbh->prepare("SELECT * FROM TEST");
@$sth->execute();
$result = @$sth->fetchAll();
echo `<pre>`;
print_r($result);
} catch(PDOException $E){
echo `connection failed:`.$E->getMessage();
$dbh = null;
}
unset($dbh);
2.獲取error message
sqlite_last_error()
sqlite_error_string()
獲取失敗資訊
3.簡單事務處理
預設情況下,sqlite會直接把查詢提交到硬碟,導致許多查詢語句變慢,還有可能其他程式在我們輸入地址的時候插入資料到資料庫中。為了解決這兩個問題,可以簡單的使用一個事務來處理。為了啟動事務。可以執行一個包含"BEGIN TRANSACTION" 的查詢或者簡單的寫成"BEGIN"。在事務中使用"COMMIT"來提交所有的事務中的查詢到硬碟中。速度會快很多
程式碼例項:
$dbh->query(`BEGIN`);
$INSERT_QUERY = "INSERT INTO USER(id,name) VALUES (`2`,``MAOMAO)";
$dbh->query(INSERT_QUERY );
$dbh->query(`COMMIT`);
4.觸發器
觸發器可以被設定到修改資料的查詢中,包含一個小小的sql指令碼只要設定的動作發生時該指令碼就會執行
程式碼例項:
$string = "CREATE TRIGGER INDEX_NEW AFTER INSERT ON USER
BEGIN
//DO SOMETHING
END;";
$DBH->query(string );