ホームページ >バックエンド開発 >PHPチュートリアル >Microsoft MSSQL (SQL サーバー) と php の接続ガイド

Microsoft MSSQL (SQL サーバー) と php の接続ガイド

墨辰丷
墨辰丷オリジナル
2018-05-30 13:48:181731ブラウズ

ezSQL を勉強していたときに、MSSQL に接続するために PHP が提供する mssql_connect() やその他の関数を見て、世界中でオープンソースで人気のあるプログラミング言語である PHP は Microsoft データに簡単に接続できるはずだと思いました。実際の実装に関しては、ezSQL を勉強していたときに、MSSQL に接続するために PHP が提供する mssql_connect() やその他の関数を見て、オープンソースで世界中で人気のあるプログラミング言語である PHP には簡単に接続できるはずだと思いました。 Microsoft のデータはそうですが、実際に実装してみると、多くの困難が見つかりました。

最初にダウンロードしたphpのバージョンは5.93でした。ダウンロードして環境変数などを追加し続けた後、ようやくphpinfo()関数がブラウザで正常に実行されました。その後、世界中で php_mssql.dll を検索したところ、mssql は PHP バージョン 5.3 以降ではネイ​​ティブにサポートされていないことがわかりました。

ついに Microsoft Drivers 3.0 for PHP for SQL Server を見つけました。Microsoft のものならできるはずだと思いましたが、SQLSRV30.EXE は実行できないことがわかりました。「SQLSRV30.EXE は有効な win32 プログラムではありません。」

長い間インターネットを検索した結果、次の実行可能な方法をまとめましたが、その前に次のことを行う必要があります:

MICROSOFT SQL SERVER を構成する

1. SQL サーバーをダウンロードしてインストールします。現在、2000 年から 2008 年までのさまざまなバージョンが存在します。自分で見つけてダウンロードしてください。

2. tcp/ip 接続モードを開き、データベースへのリモート アクセスを有効にします。 SQL Server 構成マネージャー -> ネットワーク構成 -> TCP/IP を有効にする

3. データ管理インターフェイスを開き、ユーザーとデータベースを追加します。

4. PHPをインストールし、IISサービスを設定します。

5. php が存在するフォルダー内の php.ini ファイルを開き、以下を追加します:

mssql.textlimit = 20971520
mssql.textsize = 20971520

これを行った後、次の 3 つの方法に従ってデータベースに接続できます。 MSSQL に接続するための php メソッドに付属しています (5.3 以降のバージョンには適用されません)

php ext 拡張ライブラリ フォルダーに php_mssql.dll があることを確認し、PHP.ini の設定に

; を追加します。 extension=php_mssql.dll

の前の「;」を削除します。 その後、接続をテストできます:

//连接MSSQL
$conn=mssql_connect("实例名或者服务器IP","用户名","密码");

//测试连接
if($conn)
{
 echo "连接成功";
}

PHP 用 SQL Server 用 Microsoft ドライバー

2008 年 7 月、Microsoft は SQL Server に接続するための新しいドライバーをリリースしました。 MSSQL 関数への接続のいくつかの欠点が解決されており、php 拡張プラグインの形式で開発されているため、php を使用して Microsoft データベースを簡単に読み書きできます。 サーバーが IIS を使用している場合は、ここからダウンロードする必要があります:

http://php.iis.net/

なぜなら、上記のリンクは実際には Microsoft によって統合されたネットワーク開発プラットフォームであり、インストールされているだけですオンラインではありますが、PDO プラグインと PHP、そしてもちろん Microsoft の他の開発機能を統合すると非常に便利ですが、必要ない場合はインストールする必要はありません。これらは Visual Studio にあります。

ただし、Apache を使用している場合は、ここにアクセスしてこのプラグインを直接ダウンロードできます。これは実際には解凍されたファイルであり、いくつかの DLL ファイルが解凍されます。

1) ドライバー パッケージをダウンロードします。 : http://www.microsoft.com/en-us/download/details.aspx?id=20098.

2) SQLSRV30.EXE が有効ではないというメッセージが表示された場合は、DLL ファイルを PHP extension_dir ディレクトリに抽出します。 win32 プログラムでは、何かが不足している可能性があります。一部のライブラリは vc10 であるか、管理者権限で実行されていない可能性があります。

extension_dir = “C:PHPext”

3) php.ini設定ファイル内の対応するダイナミックリンクライブラリファイルを参照します

extension=php_sqlsrv_52_ts_vc6.dll

extension=php_pdo_sqlsrv_52_ts _vc 6.dll

拡張子=php_pdo . dll

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

4) Apache を再起動します
5) データベースに接続します

接続コードをテストします:


<?php
//本地测试的服务名
"(local)";
//使用sql server身份验证,参数使用数组的形式,一次是用户名,密码,数据库名
//如果你使用的是windows身份验证,那么可以去掉用户名和密码
$connectionInfo = array( "UID"=>"root",
    "PWD"=>"root2010",
    "Database"=>"master");

$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn )
{
 echo "Connection established.\n";
}
else
{
 echo "Connection could not be established.\n";
 die( print_r( sqlsrv_errors(), true));
}
 ?>

Windows での FreeTDS の使用

FreeTDS とは実際にはオープン ソース (またはオープン ソースであるとも言えます)無料) C ライブラリ。Linux システム上で Microsoft の SQL データベースにアクセスして操作できます。これは、ODBC ライブラリも含まれる Sybase の db-lib または ct-lib ライブラリで使用できます。多くのアプリケーションが Sybase または Microsoft SQL サーバーに接続できるようにします。 FreeTDS はソース コードとしてリリースされているため、ほぼすべてのシステムにコンパイルしてインストールできます。 サーバーが Windows システムの場合は、php_dblib.dll を使用する必要があります。 (Unix での FreeTDS の使用に関する詳細。)

通常我们可以在这个网站上找到这些DLL文件- Frank Kromann's site, 但是它基本上很多都已经过时了,并且会引发很多的问题,因此我们推荐windows下使用PHP 5.2.x版本,并且看看下面的建议 :

1. 按照下面的表格来下载 php_dblib.dll 并且将其保存到 /PHP/ext 文件夹下面.





PHP version Thread Safe FreeTDS version Download URL
PHP 5.2.x (vc6) Yes 0.82 + 20090302 patches Download!
No 0.82 + 20090302 patches Download!
PHP 5.3.x (vc9) Yes 0.82 + 20090904 patches Download!
No 0.82 + 20090904 patches Download!
PHP 5.4.x (vc9) Yes 0.82 + 20110906 patches Download! FTP Download!
No 0.82 + 20110906 patches Download! FTP Download!


2、 FreeTDS 需要安装 .NET Framework v1.1 ,你可以到微软的网站去下载。或者你去Frank's site 下载需要的DLL文件,并保存到你的/PHP根目录下面。

3、在php配置文件 /PHP/php.ini 中添加:

extension=php_dblib.dll

4、当php引擎启动FreeTDS模块的时候需要传递一些信息,使得FreeTDS能够连接到它的默认的数据库。因此它的需要在freetds.conf中定义数据库连接的基本信息,该文件在其根目录下,可以按照你的情况来进行修改:

[global]
host = xxx.xxx.xxx.xxx (host name or ip of the MSSQL server)
port = 1433
client charset = UTF-8
tds version = 8.0
text size = 20971520
5、创建config.php文档来定义数据库连接参数:

$CFG->dbtype = &#39;mssql&#39;; // Required
$CFG->dbhost = &#39;localhost&#39;; // assuming MS SQL is on the same server, otherwise use an IP
$CFG->dbname = &#39;moodle&#39;;  // or whatever you called the database you created
$CFG->dbuser = &#39;yourusername&#39;; // I usually use the &#39;sa&#39; account (dbowner perms are enough)
$CFG->dbpass = &#39;yourpassword&#39;;
$CFG->dbpersist = false;
$CFG->prefix = &#39;mdl_&#39;;  //Prefix, you can change it, but NEVER leave it blank.

6、 重启你的网站,如果还是没有连接到你的数据库的话,在 /PHP/php.ini文件中将display_startup_errors改为"On",当你解决了这些问题之后再将错误报告改为“Off”;
7、测试你的网站,建立test.php文件,代码如下,访问http://localhost/test.php进行测试

<?php
	$link = mssql_connect(&#39;localhost&#39;, &#39;db_user&#39;, &#39;db_password&#39;);
	if(!$link) {
		echo&#39;Could not connect&#39;;
		die(&#39;Could not connect: &#39; . mssql_error());
	}
	echo&#39;Successful connection&#39;;
	mssql_close($link);
?>

以上就是本文的全部内容,希望对大家的学习有所帮助。


相关推荐:

php中常量、静态属性、非静态属性的区别

php中静态属性和静态方法区别

php中类和对象:静态属性、静态方法图文详解

以上がMicrosoft MSSQL (SQL サーバー) と php の接続ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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