1. Windows에서 SQLServer 2005에 대한 PHP 연결
설정: 설치된 Windows 운영 체제(Win7 또는 Under Windows.
연결하기 전에 시스템을 구성하세요.
1. phpntwdblib.dll 파일을 확인하세요. 기본 PHP 설치 디렉터리 아래에 연결 및 교체가 불가능한 파일이 있습니다.
올바른 버전의 ntwdblib.dll(2000.80.194.0)을 다운로드하세요
2. PHP 구성
a. php.in을 열고 확장명=php_mssql.dll의 주석 기호를 제거합니다.
b. php.in을 열고 mssql.secure_connection = Off를 on으로 변경합니다.
c. php.in의 Extension_dir에 지정된 디렉터리 또는 /PHP/ext에 있는 시스템 system32 디렉터리에 php_mssql.dll을 복사합니다.
위 단계를 완료한 후에는 Apache를 다시 시작해야 합니다.
참고: 실제 사용 시 php 압축 파일을 통해 iis에 php를 수동으로 설치하는 경우 iis뿐만 아니라 머신을 다시 시작해야 하는 것으로 나타났습니다.
3. SQLServer 구성
a. SQL Server 구성 관리자 실행: SQL Server 구성 관리자, 프로토콜 프로토콜
b. 명명된 파이프 "명명된 파이프" 및 "tcp/ip"를 허용합니다
c. "tcp/ip"를 마우스 오른쪽 버튼으로 클릭하고 속성 탭 "IP 주소"를 엽니다.
d. TCP 동적 포트 "TCP 동적 포트"에 1433을 입력하고 올바른 IP 주소 할당에 주의하세요.
e. SQL Server를 다시 시작하세요
4. 다음 방법을 사용하여 MS SQL Server 2005에 연결합니다.
코드는 다음과 같으니 test.php로 저장하세요.
//데이터베이스 연결
$conn=mssql_connect('localhost','sa','123456');
mssql_select_db('gu_dde',$conn);
//쿼리문
$Query="dde_top에서 * 선택";
$AdminResult=mssql_query($Query);
//결과 출력
$Num=mssql_num_rows($AdminResult);
($i=0;$i
방문:
5.FAQ:
1개의 오류:
치명적인 오류: 정의되지 않은 함수 mssql_connect() 호출
해결책:
MSSQL_series 함수 사용
이 두 가지를 사용하려면 php.ini에서 설정해야 합니다.
(1) DCOM을 허용하려면 php.ini에서 ;com.allow_dcom=TRUE 앞의 세미콜론 ";"을 제거해야 합니다.
(2) MSSQL 확장을 사용하려면 php.ini에서 ;extension=php_mssql.dll 앞의 세미콜론 ";"을 제거해야 합니다. (키)
(3) Extension_dir이 올바른 경로인지 확인하고 다음 시스템을 예로 들어 보겠습니다. Extension_dir = "c:phpext".
(4) 컴퓨터에서 여전히 c:phpextphp_mssql.dll을 찾을 수 없다는 오류가 보고되지만 이 파일은 분명히 존재합니다.
해결책: php_mssql.dll 및 ntwdblib.dll을 시스템 디렉터리 system32에 복사하고 테스트를 다시 시작하세요. .
(참고: 위의 두 dll 파일은 동일한 디렉터리에 있지 않습니다. 내 파일은 c:phpextphp_mssql.dll; c:phpntwdblib.dll입니다.)
또한, 설정 후 서버를 다시 시작하는 것을 잊지 마세요.
이미 활성화되어 있습니까? 예를 선택하세요
서버가 올바른지 확인한 후 ntwdblib.dll 파일 위치가 c:windowssystem32 아래에 있는지 확인하세요
동시에 ntwdblib.dll 파일 버전이 sqlserver 버전과 일치하는지 확인하세요.
대응관계는 다음과 같습니다.
1.ntwdblib.dll 버전은 2000.2.8.0으로 SqlServer2000에 해당합니다(온라인 정보와 추측에 근거한 것이며 2000은 설치되어 있지 않습니다)
2.ntwdblib.dll 버전은 2000.80.194.0으로 SqlServer2005에 해당합니다. (이건 실험으로 사용 가능하다는 것이 증명됐고, 제 노트북에는 2005를 설치했습니다.)
3.ntwdblib.dll 버전은 2000.80.2039로 SqlServer2008에 해당합니다(2008이 설치되지 않은 것으로 추정됩니다)
6. 기타 질문:
PHP Apache Sql Server2005가 동일한 시스템에 있으면 액세스하는 데 문제가 없습니다.
Sql Server2005와 PHP 머신이 분리된 경우 SQLServer가 위치한 머신의 머신 이름을 ping할 수 있는지 확인해야 합니다. 통과할 수 없는 경우 PHP가 위치한 머신의 system32driversetc 아래의 호스트 파일을 수정합니다. SQLServer가 위치한 머신의 머신 IP 줄을 추가합니다. 머신의 머신 이름입니다.
그래도 접속할 수 없다면, php가 위치한 머신에 mdac로의 비밀 변환 기능이 있는지 확인해야 합니다. 간단히 sqlserver 클라이언트를 설치하는 것은 어떻습니까?
문제는 다음과 같이 해결됩니다.
1. php_mssql.dll과 ntwdblib.dll 두 파일을 다운로드합니다
php_mssql.dll c:windowssystem32에 복사하지 않으면 쉽게 나타납니다
ntwdblib2093.dll 파일의 버전에 주의하세요. 그렇지 않으면 나중에 매우 답답할 것입니다.
2. Linux에서 SQL Server 2005에 PHP를 연결합니다
1. 먼저 필요에 따라 PHP를 제외한 다른 구성요소를 LAMP 환경에 설치합니다. freetds를 사용하여 Linux에서 MS SQL에 연결하고 freetds를 설치하세요
./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib --enable-dbmfix --with-gnu-ld --enable-shared --enable-static
만들다
설치하기
중요 팁 1: 이 단계에서 주목해야 할 것은--with-tdsver
2. freetd 구성
server2005에 해당하는 tds 버전은 7.2입니다(온라인에서 찾을 수 있는 모든 항목은 8.0이라고 나와 있는 것 같습니다)
/usr/local/freetds/etc/freetds.conf 구성
# 일반적인 Microsoft 서버
[1.1.1.21]
호스트 = 1.1.1.21
포트 = 1433
tds 버전 = 7.0
중요 사항: mssql_connect 함수를 호출할 때 첫 번째 매개 변수는 SQL Server의 IP가 아닌 [1.1.1.21](즉, freetds.conf의 구성)이어야 한다는 점에 유의해야 합니다!
3. PHP 컴파일 및 설치
PHP 컴파일을 위한 구성 항목은 필요에 따라 설정되지만 추가해야 하는 구성 항목은 --with-mssql=/usr/local/freetds/
참고: freetd를 로드하기 위해 PHP를 컴파일할 때 freetds 디렉토리를 찾을 수 없는 경우 다음을 수행해야 합니다(공식 FAQ):
/usr/local/freetds/include/tds.h를 터치하세요
/usr/local/freetds/lib/libtds.a를 터치하세요
4. PHP를 설치한 후 모든 준비가 완료되었습니다. 이제 Apache를 다시 시작하고 PHP를 사용하여 SQL Server 2005를 호출할 수 있습니다.