>  기사  >  백엔드 개발  >  PHP를 SQL 서버에 연결하는 방법

PHP를 SQL 서버에 연결하는 방법

高洛峰
高洛峰원래의
2017-01-06 14:16:014047검색

참고:
1: PHP5.2.x 자체에는 SQL 서버에 연결하기 위한 php_mssql.dll 확장이 있지만 이 dll은 SQL 서버의 하위 버전(2000 이하 버전)에 연결하는 데에만 사용됩니다. SQL Server 버전 2005 이상에서는 mssql_connect를 사용하여 데이터베이스에 연결할 수 없습니다.
2: php5.3.x는 더 이상 php_mssql.dll 확장 라이브러리를 지원하지 않으며, php5.2.x에서 php_mssql.dll을 사용해도 사용할 수 없습니다. Microsoft는 Windows에서 PHP를 사용하여 SQL Server 애플리케이션을 개발하기 위해 특별히 PHP용 SQL Server 확장(Windows 버전)을 개발했습니다. 이 확장은 SQL Server를 사용하여 SQL Server 데이터베이스 관리 시스템에 연결하는 PHP 플랫폼을 개발하는 데 도움이 됩니다.
1. php5.3 이하 버전은 SQL 서버에 연결
5.3 이하 버전의 확장은 데이터베이스 확장에 연결하기 위해 php_mssql.dll과 함께 제공됩니다. 이 확장을 사용하여 데이터베이스에 연결할 수 있습니다. 하위 버전 데이터베이스에 연결).
구체적인 단계는 다음과 같습니다.
1: 먼저 SQL Server를 설치합니다. 설치가 매우 어렵습니다. 이전에 2008 버전을 설치했는데 Windows가 만료된 후에는 더 이상 사용할 수 없습니다. 그래도 설치에 실패해서 설치하기전에 시스템을 다시 설치했습니다
2: SQL이 혼합인증모드나 SQL검증모드로 설치되어 있는지 확인한 후 php 설정파일(php.ini)을 열어서 활성화 해주세요. mssql 확장명(extension=php_pdo_mssql.dll 앞 세미콜론 제거)을 설정하고 다시 시작한 후 적용하려면 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. php5.3+는 SQL Server에 연결
사실 PHP 버전이 거의 없습니다. 5.3 이하를 사용하고 있으며, 보안성과 호환성이 좋지 않아 아직은 PHP 상위 버전이 상대적으로 흔합니다. 실습을 통해 낮은 버전의 PHP를 사용하여 데이터베이스에 연결하는 성공률이 상대적으로 낮다는 것이 입증되었습니다(2005 이상의 버전은 거의 사용할 수 없음). PHP5.3+ PHP를 사용하고 Microsoft의 특수 확장인 SQLSRV를 사용하여 연결하는 것이 좋습니다. SQLServer 데이터베이스
단계는 다음과 같습니다.
1: 먼저 Microsoft 웹사이트로 이동하여 PHP용 SQL Server 드라이버를 다운로드합니다. 압축을 풀면 다음 파일이 제공됩니다. 🎜>

php如何连接sql server

, 여기서 52와 53은 php의 5.2.x 및 5.3.x 버전입니다. vc6 또는 vc9의 선택에 따라 해당 버전을 선택하세요. IIS를 사용하는 경우 Apache는 vc6을 선택합니다. ts 및 nts 선택은 설치된 PHP 버전이 스레드에 안전한지 또는 스레드에 안전하지 않은지에 따라 달라집니다. -safe 및 nts는 스레드로부터 안전하지 않습니다.

모르는 경우 아래와 같이 phpinfo에서 Zend Extension Build 속성을 볼 수 있습니다.

php如何连接sql server

2: 확장을 php에 복사합니다. /ext 디렉토리의 php.ini 파일에 다음 코드를 추가합니다:

extension=pdo 확장 아래 ext(pdo용)
extension=extension 아래 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);
?>
여기서의 연결은 mssql_connect가 아닙니다. 하지만 sqlsrv_connect 이 버전에는 여러 가지 함수가 있습니다.

이 확장은 sqlsrv_로 시작하는 일련의 함수를 PHP에 추가합니다. 일반적으로 사용되는 함수는 다음과 같습니다.

sqlsrv_connect

sqlsrv_close
sqlsrv_commit
sqlsrv_errors
sqlsrv_fetch
sqlsrv_fetch_array
sqlsrv_fetch_metadata
sqlsrv_num_rows
sqlsrv_query
sqlsrv_rollback
sqlsrv_rows_가 영향을 받았습니다
. .
또한 이것을 사용하는 경우 확장 연결 SQL Server 2005 이상 버전의 SQL Server(예: SQL Server 2008)를 사용하려면 먼저 컴퓨터에 SQL Server Native Client도 설치해야 합니다.
그렇지 않으면 다음 오류가 발생합니다.

배열
0 =>배열
0 =>문자열'IMSSP'(길이=5)
'SQLSTATE' =>문자열'IMSSP'(길이=5)
1 => int-49
'code' =>int-49
2 =>string'이 확장 프로그램에는 Microsoft SQL Server 2012 Native Client가 필요합니다. Microsoft SQL Server 2012 Native Client ODBC 드라이버를 다운로드하려면 다음 URL에 액세스하세요. x86의 경우: http://go.microsoft.com/fwlink/?LinkId=163712'(length=216)
'message' =>string'이 확장 프로그램에는 Microsoft SQL Server 2008 Native Client가 필요합니다. 다음 URL에 액세스하세요. x86용 Microsoft SQL Server 2008 Native Client ODBC 드라이버를 다운로드하려면: http://go.microsoft.com/fwlink/?LinkId=163712'(length=216)
1 =>array
0 => ;string'IM002'(길이=5)
'SQLSTATE' =>string'IM002'(길이=5)
1 =>int0
'code' =>int0
2 =>string'[Microsoft][ODBC Driver Manager] 데이터 소스 이름을 찾을 수 없으며 기본 드라이버가 지정되지 않았습니다'(길이=71)
'message' =>string'[Microsoft] [ODBC Driver Manager] 데이터 소스 이름을 찾을 수 없고 기본 드라이버가 지정되지 않았습니다. '(length=71)
. .

해결책: SQL Server 2008 Native Client ODBC 드라이버를 설치해야 합니다. sqlncli.msi 설치 그것.

위 내용은 PHP를 SQL 서버에 연결하는 방법입니다. 비슷한 문제를 해결하는 데 도움이 되기를 바랍니다.

PHP를 SQL 서버에 연결하는 방법과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

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