ホームページ >バックエンド開発 >PHPの問題 >PHPシステムがmssqlをサポートしていない問題の解決策

PHPシステムがmssqlをサポートしていない問題の解決策

藏色散人
藏色散人オリジナル
2021-09-11 10:16:341952ブラウズ

php が mssql をサポートしていない場合の解決策: 1. 「SQLSRV20.EXE」をダウンロードします; 2. ファイルを php 拡張フォルダー ext に抽出します; 3. php.ini ファイルを変更します; 4. Apache を保存して再起動しますそれ。

PHPシステムがmssqlをサポートしていない問題の解決策

この記事の動作環境:Windows7システム、php5.3バージョン、DELL G3コンピュータ

phpシステムはサポートしておりませんmssql の問題解決方法、php5.3 が mssql データベースに接続できない問題の解決方法

この記事の例では、php5.3 が mssql データベースに接続できない問題の解決方法を説明します。

分析は次のとおりです:

php5.3以降、システムはmssql_connect関数をサポートしていませんが、以前はcomインターフェースを使用して実装できるとも言いましたが、現在はphp5.3 で接続できない問題の解決策を紹介します。mssql データベースに接続する別の方法。#​​

##Windows システムでは、PHP5.3 以降のバージョンでは mssql 拡張機能がサポートされなくなりました。

First http ://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx 「入手」をクリックして SQLSRV20.EXE をダウンロードします。

ファイルを php 拡張フォルダー ext に抽出し、php.ini を開いて最後に追加します:

コードは次のとおりです:

[PHP_PDO_SQLSRV] 
extension=php_pdo_sqlsrv_53_nts_vc6.dll 
[PHP_SQLSRV] 
extension=php_sqlsrv_53_nts_vc6.dll

保存後に Apache を再起動します。添付の簡単な PHP 接続例。コードは次のとおりです。

コードは次のとおりです。

<?php 
$serverName = "(127.0.0.1)"; 
$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 Server 2008、PHP5 でテストされた wamp5.1 統合インストール パッケージを使用しています。 .4 上記のバージョン テストは成功しませんでした。

この拡張機能を使用して SQL Server 2005 以降 (SQL Server 2008 など) に接続する場合は、最初に SQL Server Native Client をマシンにインストールする必要もあります。 : http://download .microsoft.com/download/0/E/6/0E67502A-22B4-4C47-92D3-0D223F117190/sqlncli.msi

この拡張機能は、sqlsrv_ で始まる一連の関数を PHP に追加します。関数リファレンスは次のとおりです:

コードは次のとおりです:

sqlsrv_begin_transaction 
sqlsrv_cancel 
sqlsrv_client_info 
sqlsrv_close 
sqlsrv_commit 
sqlsrv_configure 
sqlsrv_connect 
sqlsrv_errors 
sqlsrv_execute 
sqlsrv_fetch 
sqlsrv_fetch_array 
sqlsrv_fetch_object 
sqlsrv_fetch_metadata 
sqlsrv_free_stmt 
sqlsrv_get_config 
sqlsrv_get_field 
sqlsrv_has_rows 
sqlsrv_next_result 
sqlsrv_num_fields 
sqlsrv_num_rows 
sqlsrv_prepare 
sqlsrv_query 
sqlsrv_rollback 
sqlsrv_rows_affected 
sqlsrv_send_stream_data 
sqlsrv_server_info

詳細な手順については、自己解凍ファイル内の SQLServerDriverForPHP.chm ヘルプ ファイルを参照してください。

別の ODB 接続メソッドを見てください。コードは次のとおりです。

コードは次のとおりです。

$dbhost = &#39;&#39;; 
$dbuser = &#39;&#39;; //你的mssql用户名 
$dbpass = &#39;&#39;; //你的mssql密码 
$dbname = &#39;&#39;; //你的mssql库名 
$connect=odbc_connect("Driver={SQL Server};Server=$dbhost;Database=$dbname","$dbuser","$dbpass"); 
$sql="select * from content"; 
$exec=odbc_exec($connect,$sql); 
while($row = (odbc_fetch_array($exec))) 
{ 
$row[&#39;id&#39;]   //?取字段值 
… 
}

推奨される学習: "

PHP ビデオ チュートリアル "

関連紹介:


1. php5.3 が PDO 経由で MSSQL に正常に接続するための手順は、次のように簡単にまとめられています。

##1. SQL サーバー用の php 用 Microsoft ドライバーをダウンロードします (現在 2.0 3.0 バージョンはそれぞれ ts バージョンと nts バージョンに分かれています。ts であることは、phpinfo() の Thread Safety:enable で確認できます。詳細については、ドライバーに付属のマニュアルを参照してください)

2. ドライバーの ext ファイルを php フォルダーにコピーします。フォルダーの後に、php.ini 拡張子を変更します。 extension=php_pdo_sqlsrv_53_ts_vc6.dll

3 Microsoft SQL Server 2008 R2 Native Client のインストールをダウンロードします。

テスト コード:

<?php
  try {
     $hostname = "192.168.1.100"; 
     $dbname = "Northwind";
     $username = "sa"; 
     $pwd = "pwd100"; 
     $dsn="sqlsrv:Server=$hostname;database=$dbname";
     
    $conn = new PDO ($dsn,$username,$pwd);
    $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    echo "mssql database connnection sucessed!";
   } catch (PDOException $e) {
     echo "Failed to get DB handle: " . $e->getMessage() . "\n";
     exit;
   }
?>

2. Windows システム次に、PHP5.3 より上のバージョンでは mssql 拡張機能がサポートされなくなりました。 SQL サーバーを使用する場合は、Microsoft が提供する SQL (http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx Server Driver for PHP) をダウンロードする必要があります。

php_sqlsrv_52_nts_vc6.dll
php_sqlsrv_52_ts_vc6.dll
php_sqlsrv_53_nts_vc6.dll
php_sqlsrv_53_nts_vc9.dll
php_sqlsrv_53_ts_vc6.dll
php_sqlsrv_53_ts_vc9.dll
php_sqlsrv_license.rtf
SQLServerDriverForPHP.chm
SQLServerDriverForPHP_Readme.htm

このうち、52 と 53 は PHP 5.2.X と 5.3.X のバージョンを表し、nts はノンリニアと 5.3.X のバージョンを表します。 secure、ts はスレッド セーフを表します。vc6 は Web サーバーとして Apache を使用することを意味し、vc9 は Web サーバーとして IIS を使用することを意味します。

設定に従って、対応する DLL ファイルを PHP インストール ディレクトリの ext フォルダーにコピーし、php.ini を開いて次のステートメントを追加して、php_sqlsrv および php_pdo_sqlsrv 拡張機能を開きます。 — —————————————————–

[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_53_ts_vc6.dll
[PHP_SQLSRV]
extension=php_sqlsrv_53_ts_vc6.dll

————————————————

こちら53 は php5.3 を意味します。バージョン 5.2 の場合は、52 に変更してください。PHP バージョンがスレッドセーフの場合は、PHP インストール ディレクトリに php5ts.dll があるはずです。これは、2 行のステートメントと同じです。同様に、php5nts.dll の場合、上記のステートメントは次のようになります:

————————————————————-

[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_53_nts_vc6.dll
[PHP_SQLSRV]
extension=php_sqlsrv_53_nts_vc6.dll

———————————————-

圧縮パッケージにはバージョンごとの dll ファイルが入っていますので、よく確認してください。

拡張機能をオンにした後、sqlserver に接続できるように Apache を再起動しますが、もう 1 つ注意すべき点があります。Microsoft SQL Server 2008 R2 Native Client をインストールしていない場合は、http: //msdn.microsoft.com /en-us/library/cc296170(SQL.90).aspx をダウンロードしてインストールします。これは、Microsoft の拡張パッケージにはこのサポートが必要であるためです。

すべての準備が整ったら、PHP コードを作成できます。PHP 用 SQL Server ドライバーをダウンロードした場合は、解凍したフォルダーにヘルプ ドキュメントがあります。サンプルは簡単に見つけることができます。ここでは、Web マスターが簡単な例:

<?php
//本地测试的服务名
$serverName = “(127.0.0.1)”;
//使用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));
}
?>

接続に失敗した場合は、SQL サーバーを再起動して再試行してください。

以上がPHPシステムがmssqlをサポートしていない問題の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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