2008.07.02 Wednesday
PHPのSQLServer関数対策(windows)
PHPのコンテンツの移転をしたところSQLServerへの接続関数 mssql_connect()でエラーを出しているとの事
以前に嵌ったのに又同じと事ですこし嵌ってしまったのでまとめておきます
検索のため冗長に書いています、自分のメモなので悪しからず、、
環境はWindowsXP,PHP(5.2.2)
(1)コンテンツを設置したところmssql_connect()でundefined function エラー
(2)php.iniを見直したところ php_mssql.dllが有効になっていなかったので調整
解決しなかったのでApacheのエラーログを確認
(3)ApacheのエラーログにDLLロードエラー報告
そういえば以前にphp_mssql.dllは利用できない為 php_sqlsrv.dll,php_sqlsrv.dllを利用するように書いてあった事をおぼろげに思い出し
(いらんことを思い出しました)
(4)php_sqlsrv.dllを利用するように変更してみる
;extension=php_mssql.dll.....コメントアウト
extension=php_sqlsrv.dll.....追加
extension=php_sqlsrv_ts.dll.....追加
やはりエラーはそのまま
(php.iniのDIFFとってみたり、dllのバージョン調べたり、インターネットで情報あさっているとここで数時間・・・)
気を取り直し、
PHPのリファレンスサイトのmssql関連の インストール/設定」ページをみにいってみる
↓記述発見
(5)php5フォルダ下のntwdblib.dllをシステムフォルダへコピーすることで解決
php_sqlsrv.dllは使いません
トホホ・・・なんでブログにあげていなかったんだろ、、
以前に嵌ったのに又同じと事ですこし嵌ってしまったのでまとめておきます
検索のため冗長に書いています、自分のメモなので悪しからず、、
環境はWindowsXP,PHP(5.2.2)
(1)コンテンツを設置したところmssql_connect()でundefined function エラー
Fatal error: Call to undefined function: mssql_pconnect() in C:¥xxx.php on line 119
(2)php.iniを見直したところ php_mssql.dllが有効になっていなかったので調整
extension=php_mssql.dll
解決しなかったのでApacheのエラーログを確認
(3)ApacheのエラーログにDLLロードエラー報告
PHP Warning: PHP Startup: Unable to load dynamic library 'C:/WINNT/php5/ext¥¥php_mssql.dll' -(略) in Unknown on line 0
そういえば以前にphp_mssql.dllは利用できない為 php_sqlsrv.dll,php_sqlsrv.dllを利用するように書いてあった事をおぼろげに思い出し
(いらんことを思い出しました)
(4)php_sqlsrv.dllを利用するように変更してみる
extension=php_sqlsrv.dll.....追加
extension=php_sqlsrv_ts.dll.....追加
やはりエラーはそのまま
(php.iniのDIFFとってみたり、dllのバージョン調べたり、インターネットで情報あさっているとここで数時間・・・)
気を取り直し、
PHPのリファレンスサイトのmssql関連の インストール/設定」ページをみにいってみる
↓記述発見
こんな、書いてある事なことなので、ネットでの検索はヒットしなかったのか・・要件
Win32 プラットフォームでの要件
この拡張モジュールは、PHP がインストールされているシステムに MS SQL クライアントツールのインストールを要します。クライアントツールは、 MS SQL Server CD か、またはサーバの ¥winnt¥system32 から ntwdblib.dll を PHP システムの ¥winnt¥system32 にコピーすることによりインストール可能です。 ntwdblib.dll のコピーでは、名前付きパイプでのアクセスのみが可能となります。 クライアントの設定には全てのツールのインストールが必要です。
(5)php5フォルダ下のntwdblib.dllをシステムフォルダへコピーすることで解決
php_sqlsrv.dllは使いません
トホホ・・・なんでブログにあげていなかったんだろ、、