php sqlite 建立本地資料庫

mmy123456發表於2019-02-16

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 );

相關文章