• ベストアンサー

ドライバーって何?

PDOという抽象化レイヤー(でいいのかな?)を使ってみようと、サンプルソースをたたいてみたら、エラーとなりました。 で、調べてみると、なにやらいろいろ初期設定がいるようで。 http://www.doyouphp.jp/php5/php5_pdo.shtml を見ると、めんどくさそう。 ドライバーがどうのこうのと、いろいろ不思議な感じです。 なんですか? このドライバーって?

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

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

PDOの各種データベース用のドライバのことですね MySQLの例で言えばLinuxではpdo_mysql.so、Windowsならphp_pdo_mysql.dllがPDOドライバです。

besei21
質問者

お礼

なるほど、PHP5.xを入れたからといって、PDOが使えるわけで七位のですね。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • mysqlのドライバが見つからないについて

    cakephp1.3バージョンを使っています。 mysqliで接続しています。 エラーメッセージです。 --------------------------------- Fatal Error (256): DboMysql - Selected driver is not enabled [CORE\cake\libs\model\datasources\dbo_source.php, line 139] ----------------------------- ソースコードの該当箇所です。 function __construct($config = null, $autoConnect = true) { if (!isset($config['prefix'])) { $config['prefix'] = ''; } parent::__construct($config); $this->fullDebug = Configure::read() > 1; if (!$this->enabled()) { trigger_error(sprintf(__('%s - Selected driver is not enabled', true), get_class($this)), E_USER_ERROR); return false; } if ($autoConnect) { return $this->connect(); } else { return true; } } ---------------------------- 試したことphp.iniファイルのコメントアウトを外しました。 以下の場所です。 extension=php_pdo.dll extension=php_pdo_mysql.dll ----------------- apacheも再起動しました。 でも、 DboMysql - 選択したドライバーが有効になっていません と表示されます。 mysqliで接続したいです。 ご教授よろしくお願いします。

    • ベストアンサー
    • MySQL
  • PHP : pdo_mysql.so

    大変お世話になっております。 今回、PHPでバッチを作成しました。 当然、pdo_mysql.so をドライバーとし、コネクションを生成しようとしておりますが、 「Error:could not find driver」 とエラーが出てしまいます。 そこで、php.ini に設定を行いました。 extension_dir に、実態の配置されているpath extension=pdo.so extension=pdo_mysql.so の設定を行っております。 phpinfo() には、pdo_mysql が表示されています。 また、同一サーバーにZendFramework を利用したアプリケーションが存在しておりますが、 そちらではDBへのアクセスが可能であります。 上記のような現象に思い当たる部分がある方は、 是非ご教示ください。 お手数おかけいたしますが、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • MY SQL PDO ドライバのインストール

    Windows 8.1 x64 php-5.5.6 、My SQL 5.5で、 XAMMPは使っていません。 色々調べて設定を試しましたが、http://localhost/sample/phpinfo.phpを見てもPDO drivers no value のままで困っています。 (1)php.iniファイルは http://www.phpbook.jp/tutorial/pdo/index1.htmlを参考に、 extension=php_mysql.dllとextension=php_pdo_mysql.dllをコメントアウト (このバージョンではphp_pdo.dll不要ですよね) さらにここには書いてないが extension=mysqli.so extension=pdo_mysql.soも追加 (2)C:\Program Files\Apache\Apache24\PHP\php-5.5.6-Win32-VC11-x64\ext 内に php_mysql.dllあり (3)環境変数はこんな感じです。 CLASSPATH C:\mysql-connector-java-5.1.18\mysql-connector-java-5.1.18-bin.jar;C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar; PATH C:\Program Files\Java\jdk1.6.0_45\bin;C:\Users\自分の名前\AppData\Local\Box\Box Edit;c:¥php;C:\Program Files\MySQL\MySQL Server 5.5\lib;C:\Program Files\adt-bundle-windows-x86_64-20131030\sdk\platform-tools;C:\Program Files\adt-bundle-windows-x86_64-20131030\sdk\tools;C:\Users\自分の前\AppData\Roaming\npm;C:\Program Files (x86)\Brackets (4)設定変更したら必ずhttpd -k restartで Apacheの再起動もしています。 他に原因はありますでしょうか?

    • 締切済み
    • PHP
  • PDOで接続をechoするとエラーになる現象の対処

    PDOでPHPとMySQLを連動させる時にエラーが出てしまいます。 対処法を教えて下さい。 サーバーの設定(PHP・MySQLなど)が原因のような気がしていますが、自分では解決できません。 PDOでINSERTを繰り返し行っています。 下記のソースでうまく動作をしています。 しかし、ソースの中で $dbh = new PDO($DSN , $DBUSER , $DBPASS); の後に echo $dbh を入れるとエラーになってしまいます。 このプログラムは複数のレンタルサーバーなどで動作が確認できています。 今回新しくVPSを借りてプログラムを設置したら上記のような現象が出てしまいました。 php.ini , my.cnf , httpd.conf などに設定が必要なのでしょうか? 普通にPHPのプログラムは動くのですが、接続 $dbh をecho したときだけエラーになるのです。 環境 PHP:5.1.6 MySQL:5.0.77 //$DNS,$DBUSER,$DBPASSは別途設定し読み込み。 //$nameには次々に名前が入り、1件ずつDBに登録されていく。 foreach($matches as $match) { $name = $match[1]; try { $dbh = new PDO($DSN , $DBUSER , $DBPASS); //echo $dbh; $query=<<<EOF INSERT INTO sample (name) VALUES (:name) EOF; $stmt = $dbh->prepare($query); $stmt->bindParam(':name', $name); $stmt->execute(); } catch(PDOException $e) { print "Error!: " . $e->getMessage() . "<br>"; die(); } }

  • phpのPDOの導入

    現在OpenPNEというPHPのOSSをUbuntuに入れようとしているのですが、エラーが出て困っています。PHPのバージョンは5.3.6です。またPHPはさわったことがなく、PNEをインストールするためにPHPをインストールしました。 ここから具体的にどのような問題が発生し、それに対してどのような対策をしたか書かせていただきます。 OpenPNEをインストールするために下記のコマンドを実効します。 ・sudo ./symfony openpne:install すると下記のエラーが表示されます。 ・Couldn't locate driver named mysql このエラーはPHPにPDOというものがインストールされていないため起こるエラーのようです。 ですのでPDOをインストールするために下記のコマンドを実効しました。 ・sudo pecl install pdo_mysql しかしエラーは上記のままです。 調べてみるとPHP5.1以上ではPDOがデフォルトで入っているはずです。ですのでphp.iniの末尾に下記の内容を追加しました。 extension=pdo.so extension=pdo_mysql.so extension=pdo_pgsql.so extension=pdo_sqlite.so extension=pdo_firebird.so extension=pdo_dblib.so extension=pdo_oci.so しかしエラーは上記のままです。 以上なのですが、何かお気づきになった点がございましたら、ごかいとういただけると幸いです。

    • ベストアンサー
    • 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
  • 自分で書いた.htaccess添削してもらえませんか??

    こんばんわ。 最近.htaccessを使い始めたのですが、 どうも動いてはいるような気がするのですが 書き順、形式やそもそもおかしなところがあるのか 添削いただけないでしょうか。 よろしくお願いします。 ↓ここから DirectoryIndex index.php index.htm index.html index.cgi index.shtml ErrorDocument 403 http://sample.jp/error.php ErrorDocument 500 http://sample.jp/error.php ErrorDocument 404 http://sample.jp/notfound.php AddType audio/x-pn-RealAudio-plugin .rpm AddType audio/x-pn-realaudio .rm .ram AddType video/x-ms-asf .asf .asx AddType video/x-ms-wmv .wmv いかがでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP PDO設定

    PDOでDB接続をしたいのですが、うまくいかず困っていて質問します。 OS Linux  apache 2.0.×(ソースでインストール) PHP5(ソースでインストール) DB MYSQL5(パッケージでインストール) 現状なのですが、PHPを下記の設定でインストールしました。 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --enable-zend-multibyte --with-mysql --with-pdo-mysql=shared そのあとPHP.iniに記述してapache再起動 extension=pdo.so extension=pdo_mysql.so phpinfo()でみるとPDOの欄には下記しか表示されていません。 PDO drivers sqlite2, sqlite 試しにPHPで接続したのですが、 could not find driver と出ます。 そこで下記のようにインストールしてみたのですが phpinfoも上記と変わりません。 pecl install pdo_mysql ここまでが現状なのですが、 よくわかっていない部分もありわかりずらい かとは思いますが、参考意見の方を頂けますでしょうか。

    • ベストアンサー
    • PHP
  • ロリポップでの.htaccess 設定

    ロリポップでの.htaccess設定について教えてください。 .htmlでPHPを使えるようにしたいのですが、 管理しているファイルが.htmlと.shtmlが混ざっています。 .htmlでPHPが読めるように AddHandler php5.2-script .html と追記して、.htmlでPHPは使えるようになったのですが、 何でか指定していない、.shtmlがエラーを起こします。。 .htmlではPHPを利用 .shtmlにはPHPを使用しない という事がやりたいです。 逆に.htmlにSSIができるように AddHandler server-parsed .html と記述すると問題なく .htmlでもSSIができて.shtmlでも エラーが起こりません。 .shtmlがエラーにならない記述の仕方を教えてください。

    • ベストアンサー
    • PHP
  • これからのPHP開発ではPDOを選択するべき?

    PHPの勉強をしています。いくつか本を読んでいますが そのなかでPDOと PEAR::MDB2という二つのデータベース抽象化レイヤーを使った演習がありますが違いがよくわかりません。(より突っ込んだ言い方をすればこれからの開発ではMDB2モジュールを使う理由がないように思います)この業界でいうところの後発有利の理に従ってデータベースへの接続はPDOで統一しても大丈夫でしょうか? 技術的な理解として これらのレイヤーを介することで ここのデータベースに依存しないコードの書き方が可能になるのはわかりましたが (私のつかってる教本の質の問題かもしれませんが) なぜ二種類用意されてるのか、なぜMDB2が非推奨でないのか(しばらくはPEARの一部として生き残るということ?)、 その動作の違い、仕様の違いがよくわかりません。 わかるのは全体的にPDOを推されてるということ。 だったらなぜMDB2の説明を含めたのか(私が持ってる5.3に対応した教本の話です) 公式マニュアルを読んでもぐぐってもわからないんです。 というかなにがわからないのかがもうわかりません。 どうか初学者のわたくしめにそれと上にある二つの技術の仕様的な違いを教えてください。 それと最近のPHP開発のデータベース事情も聞かせてもらえるとありがたいです。

    • 締切済み
    • PHP