ホームページ  >  記事  >  バックエンド開発  >  PHPをSQLサーバーに接続する方法

PHPをSQLサーバーに接続する方法

高洛峰
高洛峰オリジナル
2017-01-06 14:16:014081ブラウズ

手順:
1: PHP5.2.x 自体には SQL サーバーに接続するための php_mssql.dll の拡張子がありますが、この DLL は SQL サーバーの下位バージョン (SQL Server 2005 および 2000 より前のバージョン) に接続するためにのみ使用されます。上記のバージョンでは、mssql_connect を使用してデータベースに接続できません。
2:php5.3.xではphp_mssql.dll拡張ライブラリがサポートされなくなり、php5.2.xでphp_mssql.dllを使用しても使用できなくなります。 Microsoft は、PHP 用の SQL Server 拡張機能 (Windows バージョン) を特別に開発しました。Windows で PHP を使用して SQL Server アプリケーションを開発する場合、この拡張機能は SQL Server を使用して SQL Server データベース管理システムに接続する PHP プラットフォームを開発するのに役立ちます。
1. php5.3 より前のバージョンは SQL サーバーに接続します
5.3 より前のバージョンには、データベース拡張機能に接続するための php_mssql.dll 拡張機能が付属しており、この拡張機能を使用してデータベースに接続できます (以前のバージョンのデータベースへのリンクに限定されます)。 。
具体的な手順は次のとおりです:
1: 最初に SQL サーバーをインストールします。以前にインストールしたものは 2008 バージョンでしたが、Windows の有効期限が切れると使用できなくなりました。最後に、システムを再インストールしてインストールしました。
2: SQL をインストールするときに必ず混合認証モードまたは SQL 検証モードを使用してから、php 構成ファイル (php.ini) を開き、mssql 拡張機能を有効にします。 extension=php_pdo_mssql.dll の前にセミコロン)、再起動後に有効にするには Set mssql.secure_connection = On が必要です。
問題なく完了した場合は、すでにデータベースに接続できています。接続できない場合は、低レベルの構成を続行する必要があります。
3: ntwdblib ファイル (php/以下および Apache/以下) のバージョンを確認してダウンロードします。 ntwdblib.dll の正しいバージョン (2000.80. 194.0) 既存の DLL ファイルを上書きします (ntwdblib.dll、php_mssql.dll を system32 ディレクトリにコピーすることもできます) ntwdblib.dll は、PHP が MSSQL2005 または 2008 に接続するために使用されるドライバー ファイルです。 。
4: 接続のテスト: mssql_connect('localhost,1433', 'username', 'password');
2. SQL サーバーに php5.3 以降を接続する
実際、セキュリティは言うまでもなく、5.3 より前のバージョンの php はほとんど使用されません。互換性が良くないため、php の上位バージョンが依然として比較的一般的です。以前のバージョンの PHP ではデータベースへの接続の成功率が比較的低いことが実際に証明されています (2005 以降のバージョンはほとんど使用できません)。PHP5.3 以降の PHP を使用し、Microsoft の特別な拡張機能 SQLSRV を使用して接続することをお勧めします。 SQLServer データベースの手順は次のとおりです:
1: まず Microsoft の Web サイトにアクセスします。PHP 用の SQL Server ドライバーをダウンロードすると、解凍後にいくつかのファイルが得られます:

php如何连接sql server

53 は、php の 5.2.x および 5.3.x バージョンを表します。次を選択します。vc6 または vc9 の選択は、使用している Web サーバー ソフトウェアによって異なります。 Apache を使用する場合、vc6 を選択します。 ts と nts の選択は、インストールされている PHP バージョンがスレッドセーフか非スレッドセーフかによって決まります。 ts はスレッドセーフであり、nts は非スレッドセーフです。

分からない場合は、以下に示すように phpinfo で Zend Extension Build 属性を確認できます:

php如何连接sql server

2: 拡張機能を php/ext ディレクトリにコピーし、php.ini ファイルにコードを追加します。 :

extension= pdo extension under ext (for pdo)
extension=extension under ext
3: サーバーを再起動し、phpinfo() を開くと、拡張機能が正常に追加されたことがわかります。

php如何连接sql server

4: 接続テスト:

<?php
  $serverName = "(local)";
  $connectionInfo = array("UID"=>"sa","PWD"=>"admin","Database"=>"db_online");
  $conn = sqlsrv_connect( $serverName, $connectionInfo);
  if( $conn ){
     echo "Connection established.\n";
  }else{
     echo "Connection could not be established.\n";
     die( var_dump(sqlsrv_errors()));
  }
  sqlsrv_close( $conn);
?>

このバージョンでは、いくつかの関数があることに注意してください:

この拡張機能は、sqlsrv_ で始まる一連の関数を PHP に追加します。一般的に使用される関数は次のとおりです。
sqlsrv_close

sqlsrv_commit

sqlsrv_errors
sqlsrv_fetch
sqlsrv_fetch_array
sqlsrv_num_rows
sqlsrv_query
sqlsrv_rollback
_rows_affまた、この拡張機能を使用して SQL Server 2005 以降のバージョン (SQL など) に接続する場合にも注意してください。 Server 2008)、最初に SQL Server Native Client をマシンにインストールする必要もあります
そうしないと、次のエラーが表示されます:

配列
0 =>配列
0 =>文字列'IMSSP'(長さ=5)
'SQLSTATE' =>文字列'IMSSP'(長さ=5)
1 =>int-49
'コード' = >int-49
2 =>string'この拡張機能には、Microsoft SQL Server 2012 Native Client にアクセスして、x86 用の Microsoft SQL Server 2012 Native Client ODBC ドライバーをダウンロードします。 /fwlink/?LinkId=163712'(length=216)
'message' =>string'この拡張機能には、次の URL にアクセスして、x86 用の Microsoft SQL Server 2008 Native Client ODBC ドライバーが必要です。 http://go.microsoft.com/fwlink/?LinkId=163712'(length=216)
1 =>array
0 =>string'IM002'(length=5)
'SQLSTATE' => ;string 'IM002'(length=5)
1 =>int0
'code' =>int0
2 =>string'[Microsoft][ODBC Driver Manager] データ ソース名が見つかりません、デフォルトで指定されたドライバーもありません'(length =71)
'message' =>string'[Microsoft][ODBC Driver Manager] データ ソース名が見つかりません、デフォルトのドライバーが指定されていません'(length=71)
.

解決策: SQL をインストールする必要があります。 Server 2008 Native Client ODBC Driver の場合、インストール ファイル sqlncli.msi をダウンロードしてインストールします。

上記はphpをSQLサーバーに接続する方法です。同様の問題を解決する際に皆さんのお役に立てれば幸いです。

php を SQL サーバーに接続する方法に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

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