php_pdo_odbc.dll は 1 つだけです。
だから~php 経由で mssql に接続する最新かつ最良の方法は次のようになります:
コードをコピー コードは次のとおりです:
< ;?php
$cnx = new PDO("odbc:Driver={SQL Server};Server=127.0.0.1;Database=test;",'sa','asd123');
var_dump($cnx );
$a = $cnx->query("SELECT * FROM [user]");
var_dump($a); b) {
var_dump ($b);
}
?>
PHP が MSSQL データベースに接続できない問題について
今日、新しいサーバーを構成しました。構成は IIS php ですが、実行時に、php がリモート mssql データベースに接続するときにエラーが発生したことがわかります。エラー コードは次のとおりです: 警告: mssql_connect (): サーバーに接続できません:
考えてみてください。以前は問題ありませんでしたが、何が起こったのでしょうか?その後、オンラインで検索して記事を見つけましたが、php を使用して mssql に接続するには、サーバーに mssql をインストールする必要があることがわかりました。当初は、新しいサーバーで mssql を使用する必要はありませんでした。はい、mssql をインストールすれば問題ありません。
Linux で Apache php だとどうなるのかと考えていますが、mssql をインストールするのは不可能です、ははは、めまいがします。
以下の記事が見つかりました。
php 設定:
php.ini ファイルで次のように設定し、
;extension=php_mssql.dll を見つけてその前のセミコロンを削除します
extension_dir = d:extension
を見つけますphp.ini は d:extension
ではない可能性がありますが、php インストール ディレクトリの下の extensions ディレクトリにある php_mssql.dll のパスに変更する必要があります (php インストール パスであると仮定します)。これは d:php です)
extension_dir=d:phpextensions に変更します
次に Web サーバーを再起動します
これは簡単ですが、このような設定を行っても接続できません。エラー メッセージは次のとおりです:
MS SQL Server データベース接続エラー! データベースのホスト変数の設定が正しいかどうかを確認してください!!!
ホスト変数の設定を何度も確認しましたが、問題はありませんでした。 Web を検索したところ、次の手がかりが見つかりました:
php.com 情報:
PHP から SQL Server 2000 に接続しようとしています
次の警告が表示されました:
警告: mssql_connect(): サーバーに接続できません: SERVERPortal
.... 5 行目
5 行目に次があります:
$db_connect = mssql_connect('SERVERPortal', 'sa', 'my_passwd');
次のことを行いました
1. PHP.ini で php_mssql.dll 拡張機能を有効にしました
2. ntwdblib.dll を含むすべての dll が適切な場所 (System32 または PHP フォルダー) にあります
Web で多くのプロファイルを検索しましたが、誰も解決するための適切な答えをくれません。
数時間後、問題の原因は
ntwdblib.dll (バージョンは 7.00.839) であることがわかりました。古い ntwdblib.dll を新しい
ntwdblib.dll に置き換えました。バージョンは 8.00.194 です。
Windows 2003 での MSSQL に関するいくつかの問題はよくありました。
同じウィンドウが 2 つあり、php、php-ini、すべてのマシンがありましたが、接続できたのは 1 つだけでした。
接続できないというエラー メッセージが表示されました。
最後に、ntwdblib.dll と PHP で配布されているバージョンを確認しました。
SQL Server インストールのバージョンは 8.00.... だったので、これを
php ディレクトリと apache ディレクトリにコピーしたところ、
問題は解決しました。 ntwdblib.dll
ntwdblib.dll の主な機能は、SQL サーバー接続サービスを提供することです。
私が使用している PHP のバージョンは 4.3.9 です。インストールされているサーバーの Windows/system32/ で、ntwdblib.dll ファイルのバージョンが 2000.2.8.0 であることがわかりました。このバージョンは SQL Server 7.0 をサポートしています。インストールにより、PHP は dll の下にあるすべてのファイルをシステム
ディレクトリに上書きするため、これを使用して SQL Server 2000 に接続すると、当然ながら接続できなくなります。
後で、SQL Server 2000 が正常にインストールされているサーバー上の ntwdblib.dll のバージョンが 2000.80.2039.0 であることがわかり、このファイルをコピーして以前のバージョンを上書きしたところ、サーバーを再起動したところ、すべて正常になりました。
補足: データベース名が数字で始まる場合は、開くことができないというメッセージも表示されます。このとき、データベース名を角括弧 [ ]
で囲むだけで済みます。たとえば、123bbs は [ 123bbs] に書き換えられます。また、データベース名が SQL Server の予約語と競合する場合にも、この状況は発生します。角括弧を使用することによっても解決できます。
ついに、PHP が SQL Server 2000 に正しく接続できない問題が解決されました。時間がかかりましたが、今投稿することで、同じ問題に遭遇した兄弟たちの時間の節約にもなります。 . 迂回路。