query(""/> query("">

ホームページ  >  記事  >  バックエンド開発  >  mssql への PHP 接続 mssql への PHP 接続について: pdo odbc sql サーバー

mssql への PHP 接続 mssql への PHP 接続について: pdo odbc sql サーバー

WBOY
WBOYオリジナル
2016-07-29 08:46:15808ブラウズ

php_pdo_odbc.dll は 1 つだけです。
だから~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);
foreach ($a as $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 であると仮定します)
extensi に変更します
その後、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を新しい
ntwdblibに置き換えたとき、問題の原因はバージョン7.00.839の
ntwdblib.dllであることがわかりました。 dll のバージョンは 8.00.194 で、すべての問題が解決されました。
Windows 2003 での MSSQL に関する問題がいくつかありました。よく読んでください。
同じウィンドウが 2 つあり、php、php-ini、すべてのマシンがありましたが、1 つだけでした。接続できました。
接続できないというエラー メッセージが表示されました。
最後に ntwdblib.dll のバージョンを確認したところ、PHP で配布されていたものは 7.00 でした。
SQL Server インストールのバージョンは 8.00 でした。 . . それで、これを
php と apache ディレクトリにコピーしたところ、うまくいきました
問題は ntwdblib.dll でした
ntwdblib.dll の主な機能は、SQL サーバー接続サービスを提供することです。
私が使用している PHP のバージョンは 4.3.9 です。インストールされているサーバーの Windows/system32/ では、ntwdblib.dll ファイルのバージョンが 2000.2.8.0 であることがわかりました。 PHP をインストールすると、dll 配下のすべてのファイルがシステム ディレクトリに上書きされるため、これを使用して SQL Server 2000 に接続すると、当然接続できなくなります。
後で、SQL Server 2000 が正常にインストールされているサーバー上の ntwdblib.dll のバージョンが 2000.80.2039.0 であることがわかり、このファイルをコピーして以前のバージョンを上書きしたところ、サーバーを再起動した後、すべてが正常になりました。
補足: データベース名が数字で始まる場合は、開くことができない旨のメッセージも表示されます。このとき、データベース名を[ ]で囲むだけで完了です。たとえば、123bbs を [123bbs] に書き換えると機能しません。また、データベース名が SQL Server の予約語と競合する場合にも、この状況が発生します。角括弧を使用することによっても解決できます。
最終的に、PHP が SQL Server 2000 に正しく接続できない問題が解決されました。半日以上かかりましたが、それでも大きな収穫がありました。これで、同じ問題に遭遇した兄弟たちを救うことができます。いくつかの回り道。
上記は、mssql への PHP 接続について紹介しました。mssql への PHP 接続の内容も含め、PHP チュートリアルに興味のある友人に役立つことを願っています。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。