PDO利用のための設定について

このQ&Aのポイント
  • PHP5.1のレンタルサーバーでMySQLに接続するため、PDOを使用する方法について質問です。
  • phpinfoでPDO Driversの項目にmysqlが表示されていれば利用可能と考えられますが、php.iniで設定変更が必要な場合もあります。
  • 設置できずに確認できない状況なので、標準で最初から利用できる設定か確認したいです。
回答を見る
  • ベストアンサー

PDO利用できますか?

PHP5.1でレンタルサーバーにてMySQLと接続しようとしています。 今までPear::MDB2でおこなっていたのを、今回新たにPDOにて接続したいと考えております。 そこで質問なのですが、phpinfoにて確認してどこがどうなっていればPDOが利用可能なのでしょうか? ざっと確認したところ、PDOというセクションのPDO Driversという項目にmysqlという文字があるのですが、それさえ表示されていれば問題なく使用できるということでしょうか。 ググってみたらphp.iniでPDOを利用するように設定変更しなければならないようなサイトをたくさん見たのですが、標準で最初から利用できる設定になっていないのでしょうか? 実際に設置して確認できれば良いのですが、それが出来ない状況です。 よろしくおねがいします。

  • PHP
  • 回答数1
  • ありがとう数0

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

  • ベストアンサー
  • memphis
  • ベストアンサー率40% (975/2395)
回答No.1

phpinfoでenable-pdo=shared があれば使えると思います。 ただし、モジュール形式の場合は、それでは確認できないので サンプルプログラムを作って確認するのがいいと思います。

begin96
質問者

補足

ありがとうございます。 それはConfigure Commandの欄でしょうか。 そこにはそのような記述は見つかりませんでした。 phpinfo画面の下のほうにはPDO Driversというのがあります。 それだけでは動く確証はないのでしょうか。 実サーバーでサンプル作って試せたらいのですが、今それが出来ない状況です。

関連するQ&A

  • 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
  • ○LinuxでのPDO利用

    ○LinuxでのPDO利用 PHPで次のようなコードを記述しています。 ------------------------------------------------------------- $db = 'mysql:host=localhost;dbname=dbn'; $login = 'user'; $password = 'pass'; try { $pdo = new PDO($db , $login, $password); $sth = $pdo->prepare("SELECT * FROM USER WHERE NAME=? AND PASSWORD=?"); $sth->bindParam(1, $name); $sth->bindParam(2, $password); $sth->execute(); while($row = $sth->fetch(PDO::FETCH_ASSOC)){ $user[] = $row; } }catch(PDOException $e){ var_dump($e); } ------------------------------------------------------------- このコードがWindowsでxampp上で動かすと問題ないんですが、 Linux上で動かすと$sth->execute();でfalseが返ってきて、 値を取得できません。 設定の問題だと思うのですが、 どこにその問題があるのかが分かりません。 環境は CentOS apache 2.0 php 5.3 mysql 5.1 PDO driver,pdo_mysqlもphpinfo()から確認できてます。 php.iniにも extension=pdo.so extension=pdo_mysql.so の記述はあります。 どなたか分かる方、宜しくお願いします。

    • ベストアンサー
    • 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
  • 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
  • php_pdo.dllについて

    php_pdo.dllについて 現在、php.iniファイルではphp_pdo.dllをコメントアウトしているのですが このdllはどのような時に利用するファイルなのでしょうか? MySQLを利用していますが問題なく利用できています。 ご存知の方がおられましたら教えて下さい。

  • PDO_MYSQLを利用したDB接続ができない

    閲覧ありがとうございます。 次のコードを実行してMYSQLへの接続をしようとすると以下のようなエラーになってしまいます。 エラー!: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) try { $dbh = new PDO('mysql:host=localhost;dbname=DB名', 'ユーザ名', 'パスワード'); } catch (PDOException $e) { print "エラー!: " . $e->getMessage() . "<br/>"; die(); } どなたか原因が分かる方はご教授いただければと思います。 ちなみにmysql_connect()でなら接続できます。 phpinfoを確認すると、確かにPDO、PDO_MYSQLは表示されています。

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

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

    • 締切済み
    • PHP
  • PDOを使いたい

    PHP初心者です PHP 5.2.5 MySQL 5.1.22 PDOでMYSQLに接続するにはどうすればいいのでしょうか? いままではこんな感じでしたがPDOにするとどんな感じになるんですか? $link=mysql_connect('localhost', 'user', 'pass')or die(mysql_error()); mysql_select_db(user'); mysql_query('SET NAMES UTF8'); PDOで接続する方法らしいのですが疑問を持ってしまったので教えてください 質問1 最初の$db_nameや$passなどの変数のとこに直接、localhostと書くのはまずいですか? 質問2 古いMYSQL系はカッコで囲めばいいので簡単だったのですがPDOの記号の意味を教えてください->とか=>です 質問3 PDO::ATTR_EMULATE_PREPARESは指定する必要があるんでしょうか?指定しないとパフォーマンスが下がるんですか?PDO::ATTR_EMULATE_PREPARESとはなんでしょうか? try { $pdo = new PDO("mysql:dbname=$db_name;host=$serv","$user","$pass", array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET 'utf8`")); } catch (PDOException $e) { die($e->getMessage()); } よろしくお願いします

    • ベストアンサー
    • 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
  • 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