php SQL SERVER 2008以降のバージョンを呼び出す方法

4645 ワード

今日php接続mssqlの問題に遭遇して、ネット上の各種の試みに従って、最後に成功して、更にこの記録の下で.php 5.3以降はmssqlはサポートされていないため、mssql_を引き続き使用すると先頭の関数は、それは通用しません.対応するThe SQL Server Driver for PHPをダウンロードします.現在、マイクロソフトの公式サイトには4つのインストールパッケージがあります.SQLSRV 20/30/31/32です.exe
SQL Server Driver for PHP用のAPI名はsqlsrvです.すべてのsqlsrv関数はsqlsrv_頭を打つと、動詞や名詞に続く.後続動詞の関数は特定の操作を実行するために使用され、後続名詞の関数は特定の形式のメタデータを返すために使用されます.
以下は、各php driverに公式にサポートされているphpバージョンとデータベースにサポートされているリストです.
Version support for PHP is as follows
Version 3.2 supports PHP 5.6, 5.5, and 5.4
Version 3.1 supports PHP 5.5 and 5.4
Version 3.0 supports PHP 5.4.

Versions 3.2 and 3.1 of the driver require Microsoft ODBC Driver 11 (or higher). You can download the Microsoft ODBC Driver 11 for SQL Server from the Microsoft® ODBC Driver 11 for SQL Server® - Windows page.
Version 3.0 requires the x86 version of Microsoft SQL Server 2012 Native Client.
Version 2.0 requires the x86 version of Microsoft SQL Server 2008 R2 Native Client.
以下は公式提供のAPI関数のリストと説明で、関数名は公式サイトにリンクしてdemoを表示します!リスト内の太いフォント関数はよく使用されます.
関数#カンスウ#
説明
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_field_metadata
フィールドメタデータを返します.
sqlsrv_free_stmt
文を閉じます.対応する文に関連付けられているすべてのリソースを解放します.
sqlsrv_get_config
指定した構成設定の値を返します.
sqlsrv_get_field
現在の行のフィールドをインデックスで取得します.PHP返却タイプを指定できます.
sqlsrv_has_rows
結果セットに1行以上の行があるかどうかを検出します.
sqlsrv_next_result
次の結果を処理できます.
sqlsrv_num_rows
結果セットのロー数をレポートします.
sqlsrv_num_fields
アクティブな結果セットのフィールド数を取得します.
sqlsrv_prepare
Transact-SQLクエリーを準備しますが、クエリーは実行されません.暗黙的バインドパラメータ.
sqlsrv_query
Transact-SQLクエリーを準備し、実行します.
sqlsrv_rollback
トランザクションをロールバックします.
sqlsrv_rows_affected
変更されたローの数を返します.
sqlsrv_send_stream_data
関数が呼び出されるたびに、最大8,000バイト(8 KB)のデータがサーバに送信されます.
sqlsrv_server_info
サーバに関する情報を提供します.
私もいくつかのコードを参考にします.
$MSSQL_SERVER="localhost";
$connectionInfo = array( "Database"=>"DBNAME", "UID"=>"sa", "PWD"=>"123456");
/*********************/
/*                   */
/*  Version : 5.1.0  */
/*  Author  : RM     */
/*  Comment : ms_conn.php */
/*                   */
/*********************/
//MSSQL    
	
function open_mssqlconn( )
{		
	global $mssql_connection;
	include_once( "oa_config.php" );
	if (!$mssql_connection){
	   $mssql_link=sqlsrv_connect( $MSSQL_SERVER, $connectionInfo);	   	   
	   if (!$mssql_link){
			echo "Could not connect.
"; die( print_r( sqlsrv_errors(), true)); } return $mssql_link; } else { return $mssql_connection; } } //SQL function mssqlquery($Q) { if (!$mssql_connection){ $mssql_connection=open_mssqlconn(); } $cursor=sqlsrv_query($mssql_connection,$Q); if ( !$cursor ) { echo "SQL .
"; die( print_r( sqlsrv_errors(), true)); } return $cursor; } // SQL function mssqlexec($Q){ $stmt = sqlsrv_prepare( $mssql_connection, $Q); if( $stmt===false ) { echo "SQL .
"; return false; die( print_r( sqlsrv_errors(), true)); } /* Execute the statement. Display any errors that occur. */ if( sqlsrv_execute( $stmt)===false) { echo " SQL .
"; return false; die( print_r( sqlsrv_errors(), true)); } /* Free the statement and connection resources. */ sqlsrv_free_stmt($stmt); return true; } if (!$mssql_connection) { $mssql_connection=open_mssqlconn(); }
書き込みパッケージを呼び出す方法:
//      
	public function getcinvname(){
		$cinvcode=iconv("UTF-8","GBK", $_POST["cinvcode"]);
		$query="select cinvname from inventory where cinvcode='{$cinvcode}'";			
		$cursor=mssqlquery($query);
		$cinvname='';
		while($ROW=sqlsrv_fetch_array($cursor,SQLSRV_FETCH_ASSOC)){
			$cinvname=iconv("GBK","UTF-8",$ROW["cinvname"]);
		}
		sqlsrv_free_stmt($cursor);
		$this->returnajax(0,$cinvname);
	}