PDOでMTのSQLiteデータベースからデータを読み込む
うちのブログは2008年5月3日現在、以下の環境で稼働しています。
- レンタルサーバ: XREA
- Movable Type 3.36
- データベース: SQLite
PHPからMTのデータベースを操作してみようとしたのですが、 sqlite_open でデータベースファイルを開こうとすると、
file is encrypted or is not a database
とかエラーが出て、どうもSQLiteのバージョンが合っていない模様。MTのデータベースは sqlite3 のもの、sqlite_open で使われているのは sqlite2 っぽい。
phpinfo() で調べてみると PDO(PHP Data Objects)が SQLite3 に対応しているようなのでPDOを使ってみることにしました。
このブログは blog_id=2 で、公開中のエントリーは entry_status=2 を持っているようなので、次のように書けば公開中の全エントリーを取得できます。
<?php $dsn = 'sqlite:/path/to/sqlite/database.db'; $pdo = new PDO($dsn); $sql = "SELECT * FROM mt_entry WHERE entry_blog_id=2 AND entry_status=2 ORDER BY entry_created_on"; $entries = $pod->query($sql); while ($entry = $entries->fetch()) { // 処理を書く } ?>
これまでPDOの存在に気づかなかったのでMTのデータベース操作を敬遠していたのですが、うちの環境の場合はPDOを使えばさくっと色々できそうです。
【参考サイト】
SQLiteについてのメモ書き – nitsujiの日記
PHP: PDO – Manual
コメントを残す