プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になります。
xamppの環境でphpからSQLite3のファイルを操作したいと思っています。
xamppのSQLiteはSQLite2が標準でSQLite3を扱うためにはpdoを使う必要がある旨のページを見て
php_pdo.dll、php_pdo_sqlite.dllをphp\extフォルダへDLし、php.iniのextension=設定も行いました。

下記のようなスクリプトを書いたのですが、
Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in ・・・
というエラーメッセージが出てどうにも原因がわかりません。
どのようにしたらよいのか教えていただけないでしょうか。

<?php
//---PDOでのアクセスStart
$dsn = 'sqlite:mondo_quest3.db';
$pdo = new PDO($dsn);
$sql="select * from ans order by id";
$entries = $pdo->query($sql);
while ($entry = $entries->fetch()) {
// 処理を書く
}
//---PDOでのアクセスEnd
?>

A 回答 (2件)

>そしたら、fatalErrorは出なくなりました。


>しかし、SQLite3のファイルをまだ読むことはできません。

ものすごく単純なことだが、データベースファイルの場所は正しいんだろうかね? どこにデータベースファイルは配置されているのだろうか。例えば、ファイルの指定を、

$dsn = 'sqlite:/hoge/mondo_quest3.db';

とかいう具合にフルパスで指定してみたらどうだろうか?
    • good
    • 1
この回答へのお礼

logger_manさん、お早うございます。
夜は早くにダウン、そのため朝早く起きます。
できました。
ようやくできました。
ありがとうございました。
ただ、xamppVer.1.64では何故だめなのかがはっきりとすると、
すっきりするのですが。
この先、SQLiteの学習を進めていけばわかるときもくるのかな。
まずは、いろいろと操作してみます。
ありがとうございました。

お礼日時:2009/08/04 05:32

バージョンがわからないが、最近のXAMPPでは、SQLite3は、ファイルなどは標準で組み込まれているので何も追加する必要はない。

ただ、php.iniの書き換えだけで使えるようになるはず。

本当にphp.iniの設定はできているだろうか。XAMPP 1.7.1の場合、C:\xampp\php\php.iniが使用されているが、このファイルを修正しているだろうか。また設定は、

extension=php_pdo.dll
extension=php_pdo_sqlite.dll

この2行とも修正してあるだろうか。そのあたりの基本を再度確認してみる。

一度、phpinfo()などで、SQLiteの状態を確認してみてはどうか。正しく設定できて入れば、「pdo support」と「PDO Driver for SQLite 3.x」の項目が表示されるはず。
    • good
    • 0
この回答へのお礼

logger_manさん、早速レスありがとうございます。
いままでのxamppのVer.1.64でした。
Ver.1.71にアップデートしました。
そしたら、fatalErrorは出なくなりました。
しかし、SQLite3のファイルをまだ読むことはできません。
もう少し調べてみます。
また、報告させていただきます。
とりあえずお礼まで。

お礼日時:2009/08/03 20:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!