>백엔드 개발 >PHP 문제 >PHP 시스템이 mssql을 지원하지 않는 문제에 대한 해결 방법

PHP 시스템이 mssql을 지원하지 않는 문제에 대한 해결 방법

藏色散人
藏色散人원래의
2021-09-11 10:16:341950검색

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 확장을 지원하지 않습니다.

먼저 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

저장 후 아파치를 다시 시작합니다. 첨부된 내용은 간단한 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)); 
} 
?>

wamp5.1 통합 설치 패키지를 사용하고 있으며 Windows Server 2008에서 테스트했습니다. php5.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이 있습니다. 도움말 파일에서 찾아 API 참조 노드를 클릭하세요.

다른 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 PDO를 통해 MSSQL에 성공적으로 연결하는 단계는 다음과 같이 간략하게 요약됩니다.

1. SQL Server용 PHP용 Microsoft 드라이버(현재 2.0 및 3.0 버전이 있으며 각각 ts 및 nts 버전으로 구분됩니다. phpinfo()를 사용할 수 있습니다. Thread Safety:enable이 ts인지 확인하세요. 자세한 내용은 드라이버 설명서를 참조하세요. )

2. php 폴더의 ext 폴더에 드라이버를 복사한 후 php.ini 확장자 확장명=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 Server와 통신해야 하는 경우 http://msdn.microsoft com/en-us/sqlserver/ff657782로 이동해야 합니다. .aspxDownload Microsoft에서 제공하는 PHP용 SQL Server 드라이버입니다. 압축을 풀면 다음과 같은 파일이 나옵니다.

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 버전을 나타내며, vc9는 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 버전을 의미합니다. 52로 변경합니다. PHP 버전이 스레드로부터 안전한 경우 PHP 설치 디렉터리에 여기에 있는 두 줄의 명령문에 해당하는 php5ts.dll이 있어야 합니다. php5nts.dll인 경우 위 명령문은 다음과 같아야 합니다.

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

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

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

압축본에는 패키지 각 버전의 dll 파일을 주의 깊게 확인할 수 있습니다.

확장 기능을 켠 후 apache를 다시 시작하면 sqlserver에 연결할 수 있습니다. 단, Microsoft SQL Server 2008 R2 Native Client를 설치하지 않은 경우에는 한 가지 더 주의할 점이 있습니다. microsoft.com/en-us Microsoft의 이 확장 패키지에는 이 지원이 필요하므로 /library/cc296170(SQL.90).aspx를 다운로드하여 설치하십시오.

모든 것이 준비되면 PHP 코드를 작성할 수 있습니다. The SQL Server Driver for PHP를 다운로드하면 압축을 푼 폴더에 도움말 문서가 있습니다. 다음은 웹마스터가 소개하는 간단한 예입니다.

<?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 Server를 다시 시작하고 다시 시도해 보세요.

위 내용은 PHP 시스템이 mssql을 지원하지 않는 문제에 대한 해결 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.