ページ

2009年2月9日月曜日

見様見真似でPHPでSQLite使ってみる



Fedora10のPHPでSQLiteを使ってみました。


1.下準備としてパッケージの確認をしておく。



# rpm -qa | grep php


php-cli-5.2.8-5.fc11.i386


php-soap-5.2.8-5.fc11.i386


php-5.2.8-5.fc11.i386


php-xml-5.2.8-5.fc11.i386


php-pdo-5.2.8-5.fc11.i386


php-gd-5.2.8-5.fc11.i386


php-common-5.2.8-5.fc11.i386


php-mysql-5.2.8-5.fc11.i386


php-ldap-5.2.8-5.fc11.i386



PHPのSQLiteはPDO(PHP Data Object)というものを使ってアクセスするらしい...


mysql_なんちゃらとかpg_なんちゃらという関数は最近は使わないのね。


調べてみると、PDOを使うと下記のDBにアクセスできるらしいのです。




  • MySQL Ver3, 4

  • PostgreSQL

  • SQLite Ver2, 3

  • Oracle

  • Firebird

  • MSSQL, FreeTSD

  • ODBC


なので、php-pdoが入っていればOKぽい。


念のため、sqlite関係のものが入っているか確認はしておく。



# rpm -ql php-pdo


/etc/php.d/pdo.ini


/etc/php.d/pdo_sqlite.ini


/usr/lib/php/modules/pdo.so


/usr/lib/php/modules/pdo_sqlite.so



ウム、きちんと入っている!


2. php.iniの設定も必要みたいです。


まあ、触ることになるとは思っていましたが、下記追加しました。



extension=pdo.so


extension=pdo_sqlite.so



3.軽くソースを書く



<?php


try{


$dbh = new PDO('sqlite:test.db', null, null );


}catch(PDO_Exception $e){


echo "PDO生成時:";


echo $e->getMessage();


echo "\n";


exit();


}


print('接続成功<br />');


$stmt = $dbh->prepare('select * from test');


$stmt->execute();


$cols = array();


while( $cols = $stmt->fetch(PDO::FETCH_ASSOC) ){


echo "--------------------<br />";


echo "aaa = {$cols['aaa']}<br />";


echo "bbb = {$cols['bbb']}<br />";


}


$stmt = null;


$dbh = null;


?>



なんかうまくいったぽいね。


[追記]


ソース中のPDO_ExeptionはPDOExceptionのほうが良いようです。


手動インストール方法は弊社我妻のブログもご参考に!


http://d.hatena.ne.jp/morningmist7/20080303





0 件のコメント:

コメントを投稿