1. Windows での SQLServer 2005 への PHP 接続
設定: インストールされている Windows オペレーティング システム (Win7 または .
接続する前にシステムを設定します:
1. ファイル phpntwdblib.dll を確認します。デフォルトの PHP インストール ディレクトリにファイルが 1 つありますが、接続して置き換えることはできません。
正しいバージョンの ntwdblib.dll (2000.80.194.0) をダウンロードします
2.phpを設定する
a. php.in を開き、extension=php_mssql.dll のコメント記号を削除します。
b. php.in を開き、mssql.secure_connection = Off を on に変更します。
c. php_mssql.dll を、php.in の extension_dir で指定されたディレクトリ、または /PHP/ext にあるシステム system32 ディレクトリにコピーします。
上記の手順を完了したら、Apacheを再起動する必要があります。
注: 実際の使用では、php 圧縮ファイルを介して iis に php を手動でインストールする場合、iis だけでなくマシンも再起動する必要があることがわかりました。
3.SQLサーバーを構成する
a. SQL Server 構成マネージャーを実行します: SQL Server 構成マネージャー、プロトコルを開きます
b. 名前付きパイプ「名前付きパイプ」と「tcp/ip」を許可します
c. 「tcp/ip」を右クリックし、「プロパティ」タブ「IP アドレス」を開きます。
d. TCP 動的ポート「TCP 動的ポート」に 1433 を入力し、正しい IP アドレスが割り当てられるように注意してください。e. SQL Server を再起動します。
4. 以下を使用して MS SQL Server 2005 に接続します。
コードは次のとおりです。test.phpとして保存します。//リンクデータベース
$conn=mssql_connect('localhost','sa','123456');
mssql_select_db('gu_dde',$conn);
//クエリステートメント
$Query="dde_top から * を選択";
$AdminResult=mssql_query($Query);
//結果を出力する
$Num=mssql_num_rows($AdminResult);
for($i=0;$i
http://127.0.0.1/test.php と入力してください
訪問:
5.よくある質問:
1 エラーレポート:
致命的なエラー: 未定義の関数 mssql_connect() の呼び出し
解決策:
MSSQL_series 関数を使用する
これら 2 つを使用するには、php.ini で設定する必要があります:
(1) DCOM を許可するには、php.ini の ;com.allow_dcom=TRUE の前のセミコロン「;」を削除する必要があります。
(2) MSSQL 拡張機能を使用するには、php.ini の ;extension=php_mssql.dll の前のセミコロン「;」を削除する必要があります。 (キー)
(3) extension_dir が正しいパスであることを確認します。例としてこのマシンを取り上げます: extension_dir = "c:phpext"。
(4) マシンが引き続き c:phpextphp_mssql.dll が見つからないというエラーを報告するが、このファイルは明らかに存在する場合。
解決策: php_mssql.dll と ntwdblib.dll をシステム ディレクトリ system32 にコピーし、テストを再開します。 。
(注: 上記の 2 つの DLL ファイルは同じディレクトリにありません。私のファイルは c:phpextphp_mssql.dll; c:phpntwdblib.dll です)
さらに、セットアップ後は必ずサーバーを再起動してください。
すでに有効になっていますか?
サーバーが正しいことを確認した後、ntwdblib.dllファイルの場所がc:windowssystem32の下に配置されているかどうかを確認します
同時に、ntwdblib.dll ファイルのバージョンが sqlserver:
のバージョンに対応していることを確認してください。
対応関係は以下の通りです1.ntwdblib.dll のバージョンは 2000.2.8.0 で、SqlServer2000 に対応します (これはオンライン情報と推測に基づいており、2000 はインストールされていません)
2.ntwdblib.dll のバージョンは 2000.80.194.0 で、SqlServer2005 に対応します (これは実験によって使用できることが証明されており、ラップトップに 2005 をインストールしました)
3.ntwdblib.dll のバージョンは 2000.80.2039 で、SqlServer2008 に対応します (これは 2008 がインストールされていないとの推測です)
6. その他の質問:
php apache Sql Server2005 が同じマシン上にある場合は、基本的にアクセスに問題はありません。
SQL Server2005とPHPマシンが分かれている場合、SQLServerが配置されているマシン名へのpingが通るか確認する必要がありますが、通らない場合はPHPが配置されているマシンのsystem32driversetc配下のhostsファイルを修正してください。 SQLServer が配置されているマシンのマシン IP の行を追加します。 SQLServer が配置されているマシンのマシン名。
それでもアクセスできない場合は、php が配置されているマシンに mdac へのシークレット変換があるかどうかを確認する必要があります。単純に sqlserver クライアントをインストールしてみてはいかがでしょうか。
問題は次のように解決されます:
1. php_mssql.dll と ntwdblib.dll の 2 つのファイルをダウンロードします
php_mssql.dll これをc:windowssystem32にコピーしないと簡単に表示されます
ntwdblib2093.dll このファイルのバージョンに注意してください。そうしないと、後で非常にイライラすることになります。
2. Linux で php を SQL Server 2005 に接続します
1. まず、必要に応じてphp以外のコンポーネントをLAMP環境にインストールします。 freetds を使用して Linux で MS SQL に接続し、freetds をインストールします
./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib --enable-dbmfix --with-gnu-ld --enable-shared --enable-static
作る
メイクインストール
重要なヒント 1: このステップで注意する必要があるのは、--with-tdsver です
2.freetdsを設定する
server2005 の対応する tds バージョンは 7.2 です (オンラインで見つかるものはすべて 8.0 であるようです)
/usr/local/freetds/etc/freetds.conf を設定します
#典型的な Microsoft サーバー
[1.1.1.21]
ホスト = 1.1.1.21
ポート = 1433
tds バージョン = 7.0
重要な注意事項: mssql_connect 関数を呼び出す場合、その最初のパラメーターは SQL サーバーの IP ではなく、[1.1.1.21] (つまり、freetds.conf の構成) である必要があることに注意してください。
3. phpをコンパイルしてインストールします
必要に応じて PHP をコンパイルするための設定項目を設定しますが、追加する必要がある設定項目は次のとおりです: --with-mssql=/usr/local/freetds/
注: freetds をロードするために php をコンパイルするときに freetds ディレクトリが見つからない場合は、次のことを行う必要があります (公式 FAQ):
/usr/local/freetds/include/tds.h をタッチします
/usr/local/freetds/lib/libtds.aをタッチ
4. php をインストールしたら、すべての準備が完了しました。これで、Apache を再起動し、SQL Server 2005 を呼び出すことができます。
ヒントは何ですか?
Windows で php を使用して SQL Server に接続する場合、正しい一般構成に従って次の問題が発生します
PHP は php.ini; extension=php_mssql.dll の前のコメントを削除しましたが、Apache は依然として php_mssql をロードできません。 dll。
PHP で mssql_connect() 関数を使用すると、次のエラーが報告されます
未定義の関数 mssql_connect() を呼び出します
エラー ログに記録される内容は、PHP 起動: 動的ライブラリ 'D:\\WebService\ を読み込めません\php-5.2 .8-Win32\\ext\\php_mssql.dll'
オンラインで情報を検索したところ、この問題には実際には NTwdblib.dll が欠落しており、このダイナミック リンク ライブラリ ファイルは SQL SERVER クライアント接続であることがわかりました。このマシンに SQL Server2000/2005 がインストールされている場合、この問題は発生しません。この問題は、NTwdblib.dll ファイルを見つけて System32 フォルダに配置することで解決できます。
ntwdblib.dllファイル
1.phpインストールディレクトリとc:\windows\system32ディレクトリにコピーし、IISまたはApacheを停止します。
2. apache2.2.6\bin ntwdblib.dll を上書きします
3. php5.2.5 ntwdblib.dll を上書きします
前提:
SQL Server2005 はマシン B です
接続する必要があるマシンはマシン A です
ntwdblib.dll がインストールされています後で生成されるファイルについては、このファイルをマシン A 上の上記のディレクトリにコピーして上書きする必要があります。
4. PHP 構成ファイルを変更し、PHP.ini ファイルの mssql.secure_connection = On を変更します。 LAN に接続されているサーバーの場合、この構成は正しくありません。mssql.secure_connection = Off にする必要があります