• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PDOクラスを使いたいが、peclからPDOをインストールできない。)

PDOクラスのインストールでエラーが発生しています

このQ&Aのポイント
  • peclからPDOクラスをインストールしてもエラーが発生し、使用できません。
  • 指定のコードには、パスの指定やファイルの存在などの問題があります。
  • コンパイルエラーメッセージは、ファイルが存在しないことを示しています。

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

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.3

うーん・・phpinfo()でのPDO_SQLiteの項はどうなっていますか?こちらでテストしているサーバでは PDO Driver for SQLite 3.x   enabled PECL Module version      1.0.1 $Id: pdo_sqlite.c,v 1.10.2.6.2.2 2007/03/23 14:30:00 wez Exp $ SQLite Library          3.3.7 となっていますので(Unixサーバです)。Winサーバで試してみないと仕方ないですかねぇ。ちょっと環境作りしないといけないのですが(汗

masa_go
質問者

補足

PDO Driver for SQLite 3.x PECL Module version 1.0.1 $Id: pdo_sqlite.c,v 1.10.2.6.2.2 2007/03/23 14:30:00 wez Exp $ SQLite Library 3.3.17undefined WindowsXP版です。うーん、同じですね。色々なサイトを見たのですが、やはりUNIXの方が分かりやすいかな。それにしてもSQLiteやらPECLやら、そういう言葉はあまり聞かないです。むしろPEARやSmartyの方が有名になるほど注目されていますし解説書が多く出回っていますし…。3日間も色々なサイトを調べてみて、近くの本屋へ何件廻ったのですが、結果はダメでした。 Shimixさん、ありがとうございました。私のために色々丁寧に対応していただいて、何のお礼を言えばいいのか分からないほど感謝しています。

その他の回答 (2)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

引数の「"data".$rs->fetchAll(PDO::FETCH_ASSOC)」の第一引数と第二引数の間がカンマでなくピリオドに見えますけど、大丈夫ですか(実際のソースはカンマですか?)smarty->assignの引数なのでカンマ区切りで2つあるハズですけど・・。 #そもそも文字列("data")と配列($rs->fetchAll)だし(汗

masa_go
質問者

お礼

あえて追伸します。 色々調べてみたのですが、PECLでインストールするPDOライブラリが正しくインストールされていないのが問題だと思います。コマンドプロンプトで">pecl install PDO"と入力してもERRORになる。 他のサンプルファイルでもPDOがありませんとかエラーされるようですので、恐らくPECLが問題だと思います。それにしてもPECLに関する解説サイトがあまりにもなさすぎる。 お礼内容の項目を質問の追伸に使いさせていただいております。本当にご迷惑をおかけしまして、申し訳ございません。

masa_go
質問者

補足

ご回答ありがとうございました。素早いご回答に感謝しています。とても嬉しいです。 >引数の「"data",$rs->fetchAll(PDO::FETCH_ASSOC)」の第一引数と第二引数の間がカンマでなくピリオドに見えますけど、大丈夫ですか(実際のソースはカンマですか?) 実際のソースは確かにカンマになっています。.(ピリオド)ではなく,(カンマ)です。それでもエラーになってしまいますが、もしかして、2行目のsample.sqliteのファイルは白紙なんでしょうか。10と11行のforeach.tplは、その辞書にサンプルコードが書いてあったので、それを参考にしてコードを入れています。

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

phpのバージョンはいくつでしょうか?5.1以降なら、php.iniの書き替えだけで完了です。phpinfoにも表示があるということなので、問題ないように思えますが・・。   http://jp.php.net/manual/ja/ref.pdo.php >$db=new PDO("sqlite:",dirname(__FILE__)."/sample.sqlite"); sqlite:とファイルパスの間にカンマがあるようですが??   $db=new PDO('sqlite:' . dirname(__FILE__) . '/sample.sqlite'); ただ、これは例示されたソースだと3行目なんですが、エラー行が4というのはちょっと気になります。何か(改行だけの行とかを)省略されましたか?

masa_go
質問者

補足

ご回答ありがとうございました。 >ただ、これは例示されたソースだと3行目なんですが、エラー行が4というのはちょっと気になります。何か(改行だけの行とかを)省略されましたか? この件につきましては、すみませんでした。実はこのコードの仕組みを知りたいため、グローバル変数をprint出力していました。それを"教えて!goo"に投稿する際、そのグローバル変数の行だけ削除してしまい、エラーについては訂正を忘れてしまいました。 エラー行が3行目は無事に解決されましたが、今回は11行になってしまいました。問題の行は $o_smarty->assign("data".$rs->fetchAll(PDO::FETCH_ASSOC)); です。fetchAllあたりにオブジェクトが入っていないと言っていますが、それはどういうことでしょうか?単純にSQLiteのデータが入っていないということでしょうか? ■エラー構文 C:\Program Files\Apache Group\Apache2\htdocs\dis.php Fatal error: Call to a member function fetchAll() on a non-object in C:\Program Files\Apache Group\Apache2\htdocs\dis.php on line 11