• 締切済み
  • 困ってます

PHPでpostgreSQLと接続しようとすると「call to undefind function pg_connect」というエラーが出る

表題の件で質問させて下さい。 いろいろネットで調べると、php.ini の extension_dir="phpインストールフォルダのextフォルダ" extension=php_pgsql.dllのコメントをはずす で大抵は解決しているようなのですが、その対応をしてもどうも解決しません。 以下、わかる範囲で確認してみた項目です。 ・phpinfoで確認してみても、postgreSQLの項目は表示されていませんでした。 ・phpinfoの 「Loaded Configuration File 」のphp.iniのパスもあっています。 ・ためしに、extension=php_mbstring.dll のコメントをつけたりはずしたりすると、phpinfoではちゃんと反映されていました。 ・もちろん、extension_dirに設定しているディレクトリには、php_pgsql.dllがありました。 ちょっと何が原因なのか見当がつきません。 どなたかお分かりになる方がいらっしゃいましたらご教授願えませんでしょうか。 環境は windowsXP apache/2.2.9 PHP/5.2.6 です。 よろしくお願い致します。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数215
  • ありがとう数4

みんなの回答

  • 回答No.1

Windows版PHPに詳しくはないですが、PHPマニュアル(http://jp2.php.net/manual/ja/pgsql.installation.php)に PostgreSQLサポートを利用可能とするには、PHPコンパイル時に --with-pgsql[=DIR] を指定することが必要です。 とあります。PHPコンパイルするときのconfigureオプション(Win版ではconfigureと言うのかな?)に--with-pgsql[=DIR]をつけてコンパイルしなければならないのですが、それはしてますでしょうか? undefined functionと出てるということは、pg_connect()関数がPHP側で認識できていないので、おそらくそこら辺に原因がありそうですが。。

参考URL:
http://jp2.php.net/manual/ja/pgsql.setup.php

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。 windows版でコンパイル時のオプション・・・ 今まで意識せずとも出来てたので、どうやればいいのかわからないのですが、その辺をもう一度調べてみます! ありがとうございました。

関連するQ&A

  • PHP4 + PostgreSQL8 + Windows でPHPとPostgresの接続エラー?

    現在、Windowsで以下の環境を構築しています。 Windows XP SP2 Apache 2.0.58 PHP 4.2.2 PostgreSQL 8.1.4 インストールの最後、PHPとPostgreSQLの設定を行ったのですが、 phpinfo()で確認をしても、pgsql という項目は表示されるのに バージョンなどが表示されず、 実際PHPソースで接続してみてもエラーとなってしまいます。 Webを参考にした情報では、php.ini は、 extension_dir = "C:/php/extensions" extension=php_pgsql.dll の2行の設定で認識するという情報しか得られず、行き詰っています。 PHPのフレームワークにMojavi2を使用することになっていますので PHP5にすることはできないのです.... PHP4をPostgreSQL8では相性が悪いのでしょうか? 情報をいただければと思います。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHP+MySQLでCall to undefined function mysql_connect()

    PHP5.0.14 MySQL5.0.22 http://allabout.co.jp/computer/database/closeup/CU20060414A/index.htm 上記のサイトを見て $dbHandle = mysql_connect("localhost","root","root") or die("can not connect db\n"); を実行したところ、タイトルのようなエラーが出ました。 php.iniでextension=php_mysql.dllも書かれていて、 php_mysql.dllもphp/extに入っています。 phpinfo()で見ると、MySQLらしき部分がありません。 どうすれば実行できるのでしょうか?

    • ベストアンサー
    • MySQL
  • 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
  • Call to undefined function mysql_connect() が出て、つながりません

    お世話になります。 先日PHPをはじめたばかりの初心者です。 xamppを使用せず、個別にPHPとMySQLをインストールしたのですが、 表題のエラーが出て、つながりません。ネットで調べてみましたが、 php.iniというものもどこにもなく、それに似たphp.ini-distという ファイルも、extension=php_mysql.dll、extension=php_mysqli.dllの 二行のコメントをはずすなどをやってみたのですが、いまだに つながりません。 ユーザ名やパスワードも、何度も確認しました。 原因と対策をお教えください。 尚、PHPは5.2.12、MySQLは5.1.42です。 以上、宜しくお願いいたします。

    • 締切済み
    • PHP
  • PHPとOracleの接続ができない

    ApacheとPHP5.1.5とOracle 10g XEを使用しています。 PHPのプログラムで、oracleへの接続を試みていますが、 undefined function OCILogon() というエラーが表示されてしまいます。 以下、今回の状態を記述します。 ・php.iniのextension=php_oci8.dllは「;」を外してあります。 ・php.iniのextension_dirもdllがある場所に設定しています。 ・phpinfoで、ociの項目が表示されない。 ・もちろん、php.iniの場所は合っていますし、変更後はapacheの再起動も行っています。 ・プログラムはネットで拝見したPHP5用のものなので、プログラムの間違いではないと思います。 原因が分かる方がいらっしゃいましたら、回答よろしくお願いします。

    • 締切済み
    • PHP
  • PHPでpostgresql関数が利用できない

    PHPのバージョンアップ(4.1.2→4.3.1)をしたらpotgres関連の関数が利用できなくなりました。 (Fatal error: Call to undefined function: pg_connect() など) というか、phpinfo()でもpgsqlの表示がでません。バージョンアップする前のphpinfo()でConfigureの表示は--with-pgsql=sharedだったので、バージョンアップ時も同様にしてます。 php-pgsql-4.1.2-7.3.6というのがインストールされてるのですが、 これをphp-pgsql-4.3.xxxxxといったものにしなくてはならないのか? しかし、どこにあるのかわかりません・・・ php.iniのextension=pgsql.soが有効になってること、 pgsql.soがextension ディレクトリに存在していること、 コマンドラインからPostgresSQLに接続でいること、 以上の確認と Apache・PostgresSQLの再起動は行いました。 phpからPostgresSQLを利用できるようにする方法を教えてください。 (php-pgsql-4.3.xxxxxをインストールすべきであれば、DLできる場所) 以上、宜しくお願い致します。 【環境】 OS:RedHat7.2 httpd:apache-1.3.27 PostgresSQL:7.2.4

    • 締切済み
    • 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の拡張モジュールの関数を有効化するとエラーがでます。

    こんにちは。 いつもお世話になっております・・・。 PHP5+Apach2+MySQL4.0 Win環境で、インストールをしていたのですが・・。 <?php phpinfo(); ?>を、Apacheのドキュメントフォルダに 入れた所、ちゃんと表示されたので、インストール 自体は行えているのかな、と思うのです。 が、C:\Windows\php.ini の中に extension = php_mysqli.dll を足して Apacheを再起動させると Warning: PHP Start up:Unable to load dynamic library. c:/php/ext\php-mysqli.dll というエラーが2回繰り返し表示されてしまうのです。 php_mysqli.dllファイルは、c:/php/extフォルダに あったのを、システムフォルダ(C:\windows\system32)にもコピーしてあります。 なぜこのようなエラーが出てしまうのでしょうか・・・。 どうかご指導よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHP7のphp.iniが読込みできない

    Windows7 64bitの C:\Apache24にApache2.4をインストールして、 C\php7にPHP7をインストールしました。 (php-7.1.1-Win32-VC14-x64.zipを解凍してできたフォルダをphp7にリネームしてC:\に置きました) それで、Apacheのhttpd.confやphp.iniの必要部分を書き換えて、 C:\Apache24\htdocsに <? phpinfo() ?> と記入したinfo.phpを置いて、Apacheを起動して、 ttp://127.0.0.1/info.phpにブラウザでアクセスしたところ、 phpinfo()の画面が表示されて、インストールできたと思ったのですが、 良く見ると、 php.iniでextension_dir = "c:\php7\ext"と設定しているのに、 extension_dirがC:\php7\extではなく、C:\php\extとなっていて、 mbstringなども読み込まれていないのです。 Loaded Configuration File もnoneとなっていて、php.iniが読み込まれていないようです。 Configuration File (php.ini) Path はC:\windows となっていますが、C:\windows には php.iniは入れていません。 ネットで調べて、httpd.confに PHPINIDir "C:/php7" と記入するといいとあったので、記入してApacheを再起動して info.phpにアクセスしたところ、白紙のページが表示されました。 PHPINIDir "C:/php7"を削除して、Apacheを再起動してinfo.phpにアクセスすると、 phpinfo()の画面が表示されます。 試しに、C:\windowsにphp.iniを入れてみると、また白紙のページになります。 つまり、php.iniを読み込もうとすると白紙にページになっていまうのです。 php.iniにエラーがあるのかと思って、解凍して何も変更していないphp.iniを 使ってみてもだめでした。php.iniの構文チェックができればと思って いろいろ調べたのですがネット上で見つからなかったです。 希望ですが、なんとかphp.iniを読み込んで白紙ではなくページを表示できて、 mbstringなども有効になっていればと思います。 どうぞよろしくお願いします。

    • 締切済み
    • PHP
  • hpinfoにmysqlやmysqliが表示されない

     現在、Windows2003 サーバ(IIS6.0)、PHP5.4.3、mysqlは5.0.45に環境を構築しています。phpは実行でき、コマンドからはMySQLに接続できますがphpプログラムから接続できません。  そこで調べていたのですが、phpinfoにmysqlやmysqliが表示されていません。phpとMySQLの接続がうまくいっている環境ではphpinfoにmysqlやmysqliが表示されているのでこれが原因だと思われます。 他の人の投稿から下記のことは確認いたしましたが、どうしても上手くいきません。よろしくお願いいたします。 ・php.iniはC:\Windowsに存在します。またphp.iniファイルは1つしかありません。 ・php.iniファイルの下記の項目は変更しました。  extension_dir = "C:\php\ext"  extension=php_mysql.dll  extension=php_mysqli.dll

    • 締切済み
    • PHP