PHPでSQLite3が使えない

このQ&Aのポイント
  • Windows 8にwamp (Apache 2.2.22, PHP 5.4.3) を入れています。SQLite3を使いたいのですが、sqlite_open 関数に対して「undefined function」というエラーが出てしまいます。
  • php.iniのextension_dirにはphp_pdo_sqlite.dll、php_sqlite.dll、php_sqlite3.dllがあります。しかし、phpinfo()の結果を見ると、SQLite3のサポートなどが正しく表示されていることがわかります。
  • php.iniの値を変えてもphpinfo()が変わるため、誤った設定ファイルをいじっているのではないと思います。一体何が行けないのでしょうか。
回答を見る
  • ベストアンサー

泣きそうです>< PHPでSQLite3が使えない

こんばんは 何をどうやっても進まないのでここで質問させてください。 Windows 8にwamp (Apache 2.2.22, PHP 5.4.3) を入れています。 SQLite3を使いたいのですが、sqlite_open 関数に対して「undefined function」というエラーが出てしまいます。 php.ini の内容は次のようになっています。 ;ここから extension_dir = "c:/wamp/bin/php/php5.4.3/ext/" (中略) extension=php_pdo_sqlite.dll ;extension=php_sqlite.dll extension=php_sqlite3.dll (中略) [sqlite] ; http://php.net/sqlite.assoc-case ;sqlite.assoc_case = 0 [sqlite3] sqlite3.extension_dir = "c:/wamp/bin/php/php5.4.3/ext/" ;ここまで 実際、エクステンションディレクトリには php_pdo_sqlite.dll php_sqlite.dll php_sqlite3.dll があります。 phpinfo(); では PDO drivers:mysql, sqlite SQLite Library:3.7.7.1 [sqlite3] SQLite3 support:enabled SQLite3 module version:0.7 SQLite Library:3.7.7.1 sqlite3.extension_dir:c:/wamp/bin/php/php5.4.3/ext/ いったい何が行けないのでしょうか、iniの値を変えるとphpinfo()も変わるので誤った設定ファイルをいじっているのではないと思います。 バージョンなどは冒頭に記載しています。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.1

>;extension=php_sqlite.dll エラーは、上記行の先頭にコメントアウトがあるせいだとは思うけど、 sqlite_open関数群は、sqlite2用です、SQLite3のデータファイルは扱えません。 SQLite3 を利用するなら、PDO または、SQLite3 クラスしか有りません。

tuktukrace
質問者

お礼

ありがとうございます。そのdllをコメントアウトしてもできませんでした。 というか、sqlite2の巻数だったんですね、アホでした。 SQLite3のクラスを作ってそこからアクセスちゃんとできました。 うれしくて泣きそうです><

関連するQ&A

  • phpからsqlite3にアクセスできない

    windows7-64bit IIS7でphp(5.6.30)+sqlite3で動かしていますが、 php.iniには extension=php_pdo_sqlite.dll extension=php_sqlite3.dll を記述し、 phpinfoには PDO support : PDO drivers PDO Driver for SQLite 3.x : SQLite Library とextに反映されてそうです。 しかしphpからDBにアクセスしようとすると、定義されていませんとエラーになります。 [undefined function sqlite_open()] sqlite_open( sqlite_popen( new SQLite3( のどれもエラーとなります。 どのようにしたら接続できるのでしょうか?

    • ベストアンサー
    • PHP
  • SQLiteの設定

    PHP初心者です。 Apache/2.0.64 (Win32) PHP/5.1.6 上記の環境でphp.iniの設定を編集して、SQLiteを使えるようになりたいです。。 (471行目)extension_dir = "c:\php\ext" ←パスは何度も確認しました。 (607行目)extension=php_pdo.dll (608行目)extension=php_pdo_sqlite.dll (609行目)extension=php_sqlite.dll ↑上記3つのファイルがextフォルダに入っていることも確認しました。 上のようにphp.iniの設定をし直して上書き保存をし、Apacheを再起動させ、phpinfo()で設定確認をしました。 しかしSQLiteの設定項目は一向にあらわれません。。 使用しているPCはwindows vistaです。 何故SQLiteの設定がされていないのか、アドバイス頂きたいです>< (わかりずらい部分があったらすみません。)

    • ベストアンサー
    • PHP
  • PHP5.3.0のSQlite関数に必要なDLL

    以前PHP5.0.4で動作していたSQLiteを利用したプログラムが Apacheでエラーが返ってきます。 現在の環境:PHP5.3.0 Apache2.2 php.iniに以下のようにつけくわえてもだめでした。 extension=php_pdo.dll extension=php_sqlite.dll 両方、5.3.0のextディレクトリにはなかったので、どっかから ダウンしましたが、このdllがいけないのか、php.iniの extensionが間違っているのかわからないという状態です。 ちなみにphp_pdo_sqlite.dllというファイルは、5.3.0のextフォルダに 最初からあったみたいなので、 extension=php_pdo.dll extension=php_pdo_sqlite.dll にしてみたのですが、これでもsqlite_open()関数をコールするところで、undefined function call というエラーがApacheから返ってきます。 いったいどうすればいいのでしょうか。

  • SQLiteの設定について

    ただいま、SQLiteの設定を行っています。 市販本や、さまざまなHPで書いてある通りに設定を行いました。 php.iniのextension=php_sqlite.dll の行頭にある「;」を外し、extension=php_pdo.dllをその上に追記しました。 extension_dir="c:\php\ext" (←¥じゃなく,/の違いでしょうか?) に設定しなおし、apachを再起動させましたがphp.infoにSQLiteの欄が出ず、実行できません。 実行環境は windowsXP apache_2.2.6 php-5.2.5 です。 他にどのような処置がありますでしょうか? すいません。お願いします。

    • 締切済み
    • PHP
  • PHP5.26でPDO(MySQL)が設定できません

    設定を確認しましたがphpinfo()のPDOの欄がno valueのままです。 PDOを使おうとすると"could not find driver"となります。 PHPのセットアップ時に選択するようになっていたので、 それ以外は何もしていないと思います。 --------------------------------------------------- 環境:Windows/PHP5.26/Apache2.28/MySQL5.0 ■php.ini内 [PHP_PDO] extension=php_pdo.dll [PHP_PDO_MYSQL] extension=php_pdo_mysql.dll [PHP_MYSQL] extension=php_mysql.dll extension_dir ="C:\Program Files\PHP\ext" ■"C:\Program Files\PHP\ext"内 php_pdo_mysql.dll php_pdo.dll php_pdo_mysql.dll 試しにセットアップで全てのDB用のPDOを選択すると、「odbc, sqlite, user」のみ 表示されるようになりました。。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • エラーundefined function sqlite_open()

    エラーundefined function sqlite_open() いつもお世話になっております。 SQLiteの勉強をしようと思い、ローカルでも動くようにするための設定を 試行錯誤しておりますがうまくいきません。 色々な参考ページを見ているのですが、どの情報が自分の場合、 適切なのか判断できずに困っております。どうかご指導をお願いいたします。 状況としては・・・ ・ OSはWindows XP Professionalです。 ・ ローカルで通常のPHPはAN HTTPD ver.1.42pを使用して動かしています。 ・ ローカルでphpinfo()を実行すると、「Version 5.2.8」と出ます。 extension_dirの項は Local Value、Master Valueともに「./」です。 関係ないかもしれませんが、SystemRootの項は「C:\WINDOWS」と表示されています。 ただし、phpinfo()にはsqliteの文字は検索しても見当たりません。 ・ C:\WINDOWSの中にあるphp.iniを開き、下記の3つをコメントアウト(先頭の;を削除)しました。 extension=php_pdo.dll (630行目付近) extension=php_pdo_sqlite.dll (640行目付近) extension=php_sqlite.dll (650行目付近) これらのdllファイルは全てC:\php\ext の中に入っています。 ・ http://jp2.php.net/manual/ja/sqlite.installation.php も何度も読みましたが、お恥ずかしながら内容をきちんと理解できずにおります。 ・ http://www.sqlite.org/download.htmlから、「Precompiled Binaries For Windows」 の一番上のファイル「sqlite-3_6_23_1.zip」をDLし、中の「sqlite3.exe」解凍し、 C:\SQLiteを作ってその中に入れました。 以上のような状況です。誠に恐れ入りますが、 アドバイスをどうぞよろしくお願いいたします。m(_ _)m

    • ベストアンサー
    • PHP
  • PHP PDOライブラリが読み込まれない

    いつもお世話になっております。 PHP5+Apache(2.0)+PostgreSQLで開発しております。 OSはWinXP(Pro)SP2です。 PostgreSQLのみ別端末に入れております。 手始めにPDOでPostgreSQLに接続しようとしたところ、「PDOクラスがみつかりません」というようなエラーがでました。 $db = new PDO("mydsn"); ←ここで発生 phpinfo()関数で調べたところ、PDOのライブラリがロードされていないようです。 php.iniには extension_dir = "C:\php\php-5.2.0-Win32\ext" extension=pdo_pgsql.dll extension=php_pdo_pgsql.dll を記述しており、extension_dirには上記DLLが存在することも確認しております。またデータソースの設定として [PDO] pdo.dsn.mydsn="pgsql:host=xxx.xxx.xxx.xxx port=5432 dbname=mydb user=postgres password=sa" を最終行に追加しました。 Apacheの再起動も実行しました。 何か原因となるような箇所がございましたらご教授願います。宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHP5.5 SQLServer

    Windows7 64Bit IISでPHP5.5を使用しています。 SQLServerにアクセスさせたいため、EXTに php_pdo_sqlsrv_55_nts.dll php_sqlsrv_55_nts.dll をコピーしPHP.iniのextensionに上記Dllを指定しましたが 認識していないのかphpinfoに表示されません。 どのような原因が考えられるでしょうか? よろしくお願いいたします。

    • 締切済み
    • PHP
  • apache_2.2.11+php-5.2.9-2について

    apache_2.2.11+php-5.2.9-2、mysql5をwindows-xp-pro にセットアップしたのですがphpinfoでmbstring、mysqlともに 表示されません! php.iniのextension=php_mysql.dllのコメントはずしました、 extension_dir="C:\php\ext"も直しました。 apacheもphpも上記のほかは動作しているみたなのですが。 なにか原因をご存知の方おられました宜しくお願い 致します。 PS MYSQLは当たり前ですがコマンドでは普通に 動きます。

    • 締切済み
    • PHP
  • xamppでpdoを用いてSQLiteを使う方法

    いつもお世話になります。 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 ?>

    • ベストアンサー
    • PHP