2012-09-05 1 views
2

아파치에서 PHP5를 실행하면서 MSSQL 2012 Express 데이터베이스에 연결하는 데 많은 문제가 있습니다. 테스트 설정으로 PHP 5.4.4 및 XAMPP가 설치된 Windows 7 컴퓨터에 Apache가 설치되었습니다.PHP5 및 MSSQL2012 Express를 사용하는 mssql_connect()

내 PHP 코드 (phpmssql_genxml.php) : 사이트에 입력하려고

$connection = mssql_connect('192.168.40.150', $username, $password); 
if (!$connection) { die('Not connected : ' . mssql_get_last_message());} 


$db_selected = mssql_select_db($database, $connection); 
if (!$db_selected) { 
    die ('Can\'t use db : ' . mssql_get_last_message()); 
} 


$query = "SELECT * FROM Cust WHERE 1"; 
$result = mssql_query($query); 
if (!$result) { 
    die('Invalid query: ' . mssql_get_last_message()); 
} 

출력 : 내가 문자열에 사용자 이름과 암호를 하드하려고해도

Fatal error: Call to undefined function mssql_connect() in C:\xampp\htdocs\phpmssql_genxml.php on line 13 

을, I 여전히 같은 결과를 얻습니다. Google에서 많은 검색을 해 왔지만 내 이슈를 아직 수정하지 않은 게시판을 찾지 못했습니다./ DB 인스턴스 파이프에 대해 TCP/IP를 사용하도록 설정했거나 심지어는 특정 TCP 포트를 할당하려고 시도했습니다. Win7 방화벽에 표준 포트 1433에 대한 모든 트래픽을 허용하는 규칙을 만들었습니다. 아직 운이 없습니다.

any1 아이디어가 있습니까 ?? '치명적인 오류'부분은 무엇을 의미합니까? 연결하려고 할 때 아파치 오류, PHP 또는 데이터베이스 오류입니까?

+0

치명적인 오류는 PHP 오류입니다. PHP는'mssql_connect()'함수를 찾을 수 없습니다. php.ini 파일이있는 곳을 ('phpinfo()'를 사용하여) 찾아보십시오. 'extension = php_mssql.dll' 항목을 찾아서 주석 처리를 제거하십시오. 파일을 저장하고 아파치를 다시 시작한 다음 다시 시도하십시오. –

+0

그건 그렇고, XAMPP를 실제로 사용한다면 MSSQL이 아닌 MySQL을 사용한다는 의미입니다 ... –

+1

자세한 내용은 http://www.php.net/manual/en/mssql.setup.php를 참조하십시오. 사용자 이 사이트의 기고문. 기본적으로 XAMPP에서는이 기능을 사용할 수 없습니다. – donald123

답변

2

PHP 설치 프로그램에서 MSSQL 드라이버가 누락되었습니다. 페이지에 언급 된 필수 시스템 구성이 있다고 가정하고 here에서 다운로드하십시오.

감독의 지시에서, 설정 : 메시지가 표시되면

  1. 다운로드 SQLSRV30.EXE을 임시 디렉토리로하는
  2. 실행 SQLSRV30.EXE
  3. 은 PHP 확장 디렉토리 경로를 입력
  4. 파일을 추출한 후 SQLSRV30_Readme.htm 파일의 설치 섹션에서 다음 단계를 참조하십시오.

* AMP 패키지 대신 MSSQL을 사용하려는 경우 표준 Apache + PHP 설치를 사용하는 것이 좋습니다.

+0

은 다음과 같습니다 Windows Server 2003 서비스 팩 1이 Windows XP 서비스 팩 3 Windows Vista 서비스 팩 1 이상 윈도우 서버 2008 대상 : Windows Server 2008과 같은 '지원되는 운영 체제, R2 Windows 7 ' Windows 컴퓨터에서 실행 중이어야하기 때문에 아파치 나 IIS가 문제가되지 않는다고 생각하세요? 아니면 내가 틀렸어? 배포 할 때 내 대상은 MSSQL 지원 (MSSQL Express를 실행하는 Windows XP 컴퓨터에 연결)을 사용하여 webpart 용 Apache를 실행하는 Linux 컴퓨터였습니다. 그러나 지원을위한 드라이버가 윈 박스를 필요로한다면, 그 설치는 어느 정도 파괴됩니다. – grmihel

+0

맞습니다. 요구 사항은 IIS 또는 Apache 일 수있는 PHP를 실행하는 웹 서버입니다. 그래서 내가 제대로한다면, 당신은이기는 기계에서 개발하고 있지만 목표는 실제로 리눅스 기계입니까? 예, 확실히 각 시스템에 드라이버를 설치하는 단계가 다릅니다. Windows 머신에서 개발할 필요가 있다면 PHP는 일반적으로 많은 운영 체제 차이점을 가지고 있기 때문에 가상 머신에서 Linux를 실행하는 것이 좋습니다. 개인적으로는 동일한 PHP 코드가 다른 OS 나 다른 방식으로 작동하지 않는 경우가 있습니다. – eis

+0

음, 설정을 조금 설명하겠습니다. BI가 배포되어 실행중인 Windows 컴퓨터에서 실행되는 MSSQL08 Express 서버가 있습니다. 일부 Google지도를 이미 실행중인 앱에 구현하려고합니다. 그래서 지금 PHP를 사용하고 있습니다. PHP를 지원하는 IIS를 실행하는 새로운 Windows 컴퓨터를 설정하는 대신 타겟 서버는 Apache PHP가 설치된 Linux 시스템으로 계획되지만 두 경우 모두 Webserv에서 MSSQL08 db 로의 연결을 지원해야합니다. Windows 컴퓨터가 고려 대상이되는 유일한 이유는 테스트 용입니다. 무엇을 제안 하시겠습니까? – grmihel

1

SQLSRV30을 사용할 필요가 없습니다. 일부 솔루션이 유용 할 지 모르지만 필요한 솔루션이 아니기 때문에 사용할 필요가 없습니다. XAMPP + php5.5.9 + MSSQL2012를 실행하는 로컬 개발 환경이 있고 mssql 함수를 사용해야했습니다. 왜냐하면 우리 서버에서 작업 할 때 사용하는 것이기 때문입니다. 그래서 FreeTDS를 사용하고 "운이 좋게"이 발견 : 사용자 중 하나가 이미 내 PHP 버전에 대한 php_dblib.dll TS와 NTS를 컴파일

https://moodle.org/mod/forum/discuss.php?d=232844

나는 모든 것이 작동하고 모든 MSSQL을 사용하여이 말을 충분를 dev 팀이 익숙한 기능입니다. mssql 지원을위한 확장은 항상 컴파일 할 수 있습니다.