• 締切済み

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
  • 回答数1
  • ありがとう数1

みんなの回答

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

恐らくunofficial PHP 5.5 driver https://social.msdn.microsoft.com/Forums/sqlserver/en-US/e1d37219-88a3-46b2-a421-73bfa33fe433/unofficial-php-55-drivers-x86 の事だと思うのですが、 1.PHP本体がスレッドセーフ版であるという事はないでしょうか。 PHP本体がスレッドセーフ版の場合は代わりにphp_pdo_sqlsrv_55_ts.dllとphp_sqlsrv_55_ts.dllを使ってください。 2.PHP本体がx64版であるという事はないでしょうか。 上記URLからダウンロードできるphp_pdo_sqlsrv_55_nts.dllはx86版であるため、本体もx86版である必要があります。 現時点でwww.php.netからダウンロードできる5.5や5.6のPHP本体はx64版を使うメリットはあまり無い(intが64ビットじゃない等)ためPHP7が出るまではx86版を使うのが良いでしょう。

関連する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
  • 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で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()も変わるので誤った設定ファイルをいじっているのではないと思います。 バージョンなどは冒頭に記載しています。 よろしくお願いします。

  • PHPでOCIドライバが有効にならない

    首記の件、大変困っており、ワラをもつかむ気持ちで質問させていただきました。 Windows2008R2、IIS7(32ビットアプリケーション有効)、FastCGI 上記の環境にPHP(5.3.3)をインストールして使用しております。 PHP.iniを変更し、MySQLやODBCを使用できるようにいたしました。 phpinfoにも表示されておりますし、実際にDBとの接続もできております。 そしてこの度、OCIを利用するため、php.iniから、oci関連のコメントアウトを外しました。 [PHP_OCI8] extension=php_oci8.dll [PHP_OCI8_11G] extension=php_oci8_11g.dll [PHP_PDO_OCI] extension=php_pdo_oci.dll しかし、再起動後もphpinfoには表示されておりません。 OCI関連のパラメータはまだいじっておりませんが、まずは上記コメントアウトした内容が phpinfoに反映されてからと思っております。 この現象について、解決方法をご存知の方がいらっしゃいましたら、ご教示いただきたく。 どうぞよろしくお願いいたします。

  • 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から返ってきます。 いったいどうすればいいのでしょうか。

  • PHPをIISにインストール

    お世話になっております。 WinSV2003のIISにPHPを入れようとしています。 PHPのサイトから、 php-5.3.0-nts-Win32-VC9-x86.zip を落としてきてC:\PHP5に展開し、 パスを通して、IISのWebサービス拡張で「C:\php5\php5.dll」を 登録しました。 それと、php.ini-productionをコピーして、php.iniとリネームしました。 そこから、念の為、サーバーを再起動して、サイトに <?php phpinfo(); ?> のファイル(a.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
  • 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
  • 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 です。 よろしくお願い致します。

    • 締切済み
    • PHP
  • PHPからMSSQLへの接続結果の文字化け

    PHPからMicrosoft SQLserverのデータベースへ接続を行い、データベースの内容をブラウザへ表示したいのですが、日本語が文字化けして困っております。 導入するまでの手順を書きます。 参考にしたページ http://chorusde.hatenablog.jp/entry/20120621/1340300814 (1)マイクロソフトのホームページより「SQL Server Driver for PHP」をダウンロード、解凍。 (2)自分のPHPバージョンを確認。  Apache/2.4.4   PHP/5.4.19   MSVC9   Thread Safety/enabled  上記の環境からphp_pdo_sqlsrv_54_ts.dllとphp_sqlsrv_54_ts.dllを使用することを決定。 (3)C:\xampp\php\extの下に(1)で解凍したフォルダ内にあるphp_pdo_sqlsrv_54_ts.dllとphp_sqlsrv_54_ts.dllをコピー。 (4)C:\xampp\php\php.iniを開き、「extension=」と書いている951行あたりに   「extension=php_pdo_sqlsrv_54_ts.dll」   「extension=php_sqlsrv_54_ts.dll」  を追加   「mssql.secure_connection = OFF」を「ON」に修正 (5)XAMPPコントロール画面でApacheとMySQLを再起動。 その後、以下のコードで実行したところ日本語が文字化けしました。 以下のコードはこのページのサンプルコードをそのままコピペし少し修正したものです。 http://keicode.com/cgi/how-to-connect-to-mssql.php <?php $serverName = 'SQLEXPRESS'; $connectionInfo = array( 'UID' => 'username', 'PWD' => 'password', 'Database' => 'shop' ); $conn = sqlsrv_connect( $serverName, $connectionInfo ); if( $conn === false ){ echo "Cound not connect.\n"; die( print_r( sqlsrv_errors(), true)); } $tsql ="SELECT * from food"; $stmt = sqlsrv_query( $conn, $tsql ); if( !$stmt ) { die( print_r( sqlsrv_errors(), true)); } while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC)) { print_r($row); } sqlsrv_free_stmt($stmt); sqlsrv_close($conn); ?> このソースを実行しますと日本語が文字化けしてしまいます。(データを英語表記にすれば問題なく表示できます) 文字化けせずにブラウザに結果を表示するためにはどのようにすればよいでしょうか? またSQL文の「"SELECT * from food"」の"food"の部分(テーブル名)を「食品」と日本語名に変更するとsql文が実行できなくなりエラーを起こします。 おそらく文字化けしてSQL文を認識してしまうため「そんなテーブル名はありませんよ」と怒られてしまうのだと思います。 初心者で凝縮ですが、どなたかアドバイスをお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう