>백엔드 개발 >PHP 문제 >PHP가 mssql에 연결하지 못한 경우 수행할 작업

PHP가 mssql에 연결하지 못한 경우 수행할 작업

藏色散人
藏色散人원래의
2021-12-31 10:04:142279검색

PHP가 mssql에 연결하지 못하는 문제에 대한 해결 방법: 1. php.ini 파일에서 Extension=php_mssql.dll을 찾아 앞의 세미콜론을 제거합니다. 2. php_mssql.dll 파일을 "c:/windows/system32에 복사합니다. /" 디렉토리 다음; 3. iis를 다시 시작합니다.

PHP가 mssql에 연결하지 못한 경우 수행할 작업

이 기사의 운영 환경: windows7 시스템, PHP5 버전, DELL G3 컴퓨터

PHP가 mssql에 연결하지 못하면 어떻게 해야 합니까?

PHP가 MSSQL 데이터베이스에 연결할 수 없는 해결 방법:

php 데이터베이스 sql Server 확장 sqlserver 서버

오늘 php5+iis6+mysql5 플랫폼 환경에서 sqlserver2000의 데이터에 액세스하는 데 문제가 발생했습니다. 실행시 결과가 나왔습니다. PHP가 원격 mssql 데이터베이스에 연결하는 중에 오류가 발생합니다. 오류 코드는 다음과 같습니다.

Warning: mssql_connect(): Unable to connect to server:

생각해보면 이전에는 문제가 없었습니다. 나중에 인터넷에 검색해 보니 기사를 찾아보니 php를 이용해 mssql에 접속하려면 서버에 mssql을 설치해야 한다는 내용이더군요. 원래는 새 서버에서는 mssql을 사용할 필요가 없었는데, 지금은 이렇게 하고 있습니다. mssql을 확장한 후에는 문제가 없습니다.

확장 방법:

1. c:/windows/php.ini 파일에서

를 찾아 확장명=php_mssql.dll 앞에 있는 세미콜론을 제거합니다.

Find

; 확장 라이브러리 디렉토리를 다음과 같은 PHP 라이브러리 디렉토리로 변경합니다: Extension_dir = "c:/php/ext"

2 php_mssql.dll 파일을 c:/windows/system32/ 디렉토리

3에 복사합니다. .i를 다시 시작하세요.

다음은 제가 찾은 글입니다.

php 구성:

php.ini 파일에서 다음과 같이 설정하고

;extension=php_mssql.dll을 찾으세요. 앞에 있는 세미콜론을 제거하세요.

extension_dir = d:/extension/을 찾으세요.

php에 있을 수도 있습니다. ini d:/extension/ 대신

다른 위치로 이동하지 않은 경우 php 설치 디렉터리 아래의 확장 디렉터리 아래 php_mssql.dll이 있는 경로로 변경하세요(php 설치 경로가 d:/라고 가정). php)

extension_dir=d:/php/extensions/로 변경하면 됩니다.

그런 다음 웹 서버를 다시 시작하세요

간단하지만 이러한 설정을 완료한 후에도 여전히 연결이 되지 않습니다. 오류 메시지는 다음과 같습니다. :

MS SQL Server 데이터베이스 연결 오류! 데이터베이스 호스트 변수 설정이 맞는지 확인해주세요!!!

호스트 변수 설정을 몇번이나 확인했는데, 웹서핑을 해보니 아무런 문제가 없었습니다. 다음과 같은 점을 발견했습니다.

php.com资料:
I am trying to connect to SQL Server 2000 from PHP
I bumped to following warning:
Warning: mssql_connect(): Unable to connect to server: SERVER/Portal
....... on line 5
on line 5 there is:
$db_connect = mssql_connect('SERVER/Portal', 'sa', 'my_passwd');
I did the following
1.enabled php_mssql.dll extension in PHP.ini
2.every dll is in proper place(System32 or PHP folder),including ntwdblib.dll
I search lots of profile throught web ,but no one give me proper answer to resolve it.
after a few hour ,I found the problem was caused by
ntwdblib.dll ,which version is 7.00.839 ,when I replaced old ntwdblib.dll with the new
ntwdblib.dll ,which version is 8.00.194 ,all problem are solved.
We had some, read A LOT, of problems with MSSQL under Windows 2003.
We had 2 the same windows, php, php-ini, everything machines but only one could connect.
Unable to connect was the error message.
Finnaly we checked the version of ntwdblib.dll and the one distributed with PHP was 7.00....
and the version of the one on the SQL Server install was 8.00.... so we copied this one in
the php and apache dir and it worked.

문제는 이런 식으로 발견되었습니다. 문제는 ntwdblib.dll

ntwdblib.dll의 주요 기능이 SQL Server 연결 서비스를 제공하는 것입니다.

제가 사용하는 PHP 버전은 5.25입니다. 설치된 서버의 windows/system32/에서 ntwdblib.dll 파일의 버전이 2000.2.8.0인 것을 확인했습니다. 설치 시 이 버전이 SQL Server 7.0을 지원하기 때문입니다. PHP dll 아래의 모든 파일을 시스템

디렉터리에 덮어쓰므로 이를 사용하여 SQL Server 2000에 연결할 때 당연히 연결할 수 없습니다.

나중에 SQL Server 2000이 정상적으로 설치된 서버에서 ntwdblib.dll의 버전이 2000.80.2039.0이라는 것을 알게 되었습니다. 이전 버전을 덮어쓰기 위해 이 파일을 복사해 두었는데, 서버를 다시 시작한 후에는 모든 것이 정상이었습니다.

보충사항: 데이터베이스 이름이 숫자로 시작하면 열 수 없다는 메시지도 표시됩니다. 이때 데이터베이스 이름을 대괄호 [ ]로 묶으면 됩니다. [123bbs]로 다시 작성하면 작동하지 않습니다. 또한 데이터베이스 이름이 SQL Server의 예약어와 충돌하는 경우에도 이 상황이 발생합니다. 대괄호를 사용하여 해결할 수도 있습니다.

마지막으로 PHP가 SQL Server 2000에 제대로 연결되지 않는 문제가 마침내 해결되었습니다. 비록 반나절 이상이 걸렸지만 지금 게시하면 같은 문제에 직면한 형제들도 구할 수 있을 것입니다. 잠시 우회합니다.

마지막으로 대상 MSSQL 컴퓨터에 방화벽이 장착되어 있는 경우 특히 Windows XP 시스템의 경우 포트 1433을 열어주세요!

위 정보를 읽은 후 sqlserver2000을 설치한 친구에게 "ntwdblib.dll" 파일을 보내달라고 요청했는데, 로컬 테스트에 성공했는데 서버에 업로드했더니 info()가 실패했습니다. 이미 로드된 파일이 누락된 이유는 무엇입니까? php.ini 파일을 로컬 파일과 비교해 보면 기본적으로 차이가 없지만 확장할 수 없으며 로컬에서는 모든 것이 정상입니다.

드디어 "ntwdblib.dll" 버전에 여전히 문제가 있는 것으로 확인되어 이를 대체할 "ntwdblib.dll"의 상위 버전을 찾았습니다.

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP가 mssql에 연결하지 못한 경우 수행할 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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