2011-12-02

使用php PDO的存取方式,清空SQLite3資料庫的資料內容

使用phpMyAdmin操作MySQL資料庫,有一個很好用但要小心用的『清空』功能(Truncate)。

但在SQLite Database Browser上操作SQLite資料庫檔案,要一次清空資料表中的資料,似乎不是這麼方便?

在沒有找到更好的方法前,先用php的PDO存取方式,寫個迴圈,用delete的方式,逐筆清空資料表的紀錄。雖然不是個好方法,但是個可以達到目的的方法,紀錄下來當個範例用。

<?php
//指定SQLite的來源,資料庫檔案empty.db3和程式碼放在同一目錄下
$zDsn = 'sqlite:empty.db3';
//共有1000筆資料
$nEnd = 1001;
//根據elementary資料表的oid欄位,逐筆讀取資料庫
  for ($i=1;$i<$nEnd;$i++) {
    //使用PDO連接資料庫    
    $oConn = new pdo($zDsn,"","");
    $zSQL = "delete from elementary where oid=".$i;
    $oResult = $oConn->exec($zSQL);
    if (!$oResult){
      echo "資料刪除發生錯誤!<br>";
      echo $zSQL;
      exit();
    }
    $oConn = null;
  }
?>

沒有留言:

張貼留言