ezSQL을 공부하면서 MSSQL에 연결하기 위해 PHP에서 제공하는 mssql_connect() 함수를 보고 전 세계적으로 널리 사용되는 오픈 소스 프로그래밍 언어인 PHP가 Microsoft의 데이터에 쉽게 연결되어야 한다고 생각했습니다. 하지만 실제로 구현해 보면 많은 어려움을 겪었습니다.
처음에 다운로드한 PHP 버전은 5.93이었습니다. 다운로드하고 오랜 시간 동안 환경 변수 등을 추가한 후 마침내 브라우저에서 phpinfo() 함수가 성공적으로 실행되었습니다. 그런 다음 전 세계에서 php_mssql.dll을 검색했을 때 mssql이 더 이상 PHP 버전 5.3 이상에서 기본적으로 지원되지 않는다는 것을 발견했습니다.
오랜 시간 동안 인터넷을 검색한 후 다음과 같은 가능한 방법을 요약했지만 그 전에 다음을 수행해야 합니다.
MICROSOFT SQL SERVER 구성
1, SQL Server를 다운로드하고 설치합니다. 현재 2000년부터 2008년까지 다양한 버전이 있습니다. 하나를 찾아서 직접 다운로드하세요.
2. tcp/ip 연결 모드를 열어 데이터베이스에 대한 원격 액세스를 활성화합니다. SQL Server 구성 관리자 -> 네트워크 구성 -> TCP/IP 활성화
3. 데이터 관리 인터페이스를 열고 사용자와 데이터베이스를 추가합니다.
4. PHP를 설치하고 IIS 서비스를 구성합니다.
5. php가 있는 폴더에서 php.ini 파일을 열고
mssql.textlimit = 20971520 mssql.textsize = 20971520
php에 포함된 방법을 사용하여 MSSQL에 연결합니다(5.3 이상 버전에는 해당되지 않음)
php ext 확장 라이브러리 폴더에 php_mssql.dll이 있는지 확인하고, 그런 다음 PHP.ini 구성에서
;extension=php_mssql.dll
//连接MSSQL $conn=mssql_connect("实例名或者服务器IP","用户名","密码"); //测试连接 if($conn) { echo "连接成功"; }
2008년 7월 Microsoft는 PHP 연결 서버 드라이버용 새 SQL Server를 출시했습니다. 는 PHP와 함께 제공되는 MSSQL 연결 기능의 일부 단점을 개선하고, PHP 확장 플러그인 형태로 개발된 것입니다. 이를 통해 PHP로 Microsoft 데이터베이스를 쉽게 읽고 쓸 수 있습니다.
서버가 IIS를 사용하는 경우 여기에서 다운로드해야 합니다:
http://php.iis.net/
왜냐하면 위 링크는 실제로 Microsoft가 통합한 네트워크 개발 플랫폼입니다. 온라인 설치만 제공하지만 PDO 플러그인과 PHP를 쉽게 통합합니다. 물론 Microsoft의 다른 개발 기능도 있지만 필요하지 않은 경우도 있습니다. 더 이상 설치할 필요가 없습니다. Visual Studio에 있습니다.
그러나 Apache를 사용하는 경우 여기로 가서 이 플러그인을 직접 다운로드할 수 있습니다. 실제로는 압축이 풀린 파일이며, 구체적인 작업은 다음과 같습니다.
1 ) 드라이버 패키지 다운로드:
http://www.microsoft.com/en-us/download/details.aspx?id=20098.
2) DLL 추출 파일을 PHP Extension_dir 디렉터리에 복사하는 경우 SQLSRV30.EXE가 유효한 win32 프로그램이 아니라고 표시되면 일부 라이브러리가 누락되었거나 vc10이거나 관리자 권한으로 실행되지 않을 수 있습니다.
extension_dir = “C:\PHP\ext”
3) php.ini 구성 파일에서 해당 동적 링크 라이브러리 파일을 참조합니다.
extension=php_sqlsrv_52_ts_vc6.dll extension=php_pdo_sqlsrv_52_ts_vc6.dll extension=php_pdo.dll
vc6 또는 vc9의 선택은 주로 사용 중인 웹 서버 소프트웨어에 따라 다릅니다. IIS를 사용하는 경우 vc9를 선택하고, Apache를 사용하는 경우 vc6을 선택합니다.
ts 및 nts의 경우 설치된 PHP 버전이 스레드로부터 안전한지 또는 스레드로부터 안전하지 않은지에 따라 다릅니다. ts는 스레드로부터 안전하고 nts는 스레드로부터 안전하지 않습니다.
4) Apache 다시 시작
5) 데이터베이스에 연결
연결 코드 테스트:
<?php //本地测试的服务名 "(local)"; //使用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)); } ?>
FreeTDS란 무엇입니까? FreeTDS는 실제로 Linux 시스템에서 Microsoft의 SQL 데이터베이스에 액세스하고 운영할 수 있는 오픈 소스(또는 무료) C 프로그램 라이브러리입니다. 이는 ODBC 라이브러리도 포함하는 Sybase의 db-lib 또는 ct-lib 라이브러리에서 사용할 수 있습니다. 많은 애플리케이션이 Sybase 또는 Microsoft SQL 서버에 연결할 수 있도록 합니다. FreeTDS는 소스 코드로 출시되므로 거의 모든 시스템에 컴파일하고 설치할 수 있습니다.
서버가 Windows 시스템인 경우 php_dblib.dll을 사용해야 합니다. (Unix용 FreeTDS 사용에 대한 자세한 내용.)
일반적으로 이러한 DLL 파일은 Frank Kromann의 사이트인 이 웹사이트에서 찾을 수 있지만 기본적으로 오래되어 문제가 많이 발생하므로 사용을 권장합니다. Windows에서 PHP 5.2.x 버전을 사용하고 다음 제안 사항을 살펴보세요.
1. 아래 표에 따라 php_dblib.dll을 다운로드하여 /PHP/ext 폴더에 저장합니다.
tr>< /tbody> |
---|
PHP versionThread SafeFreeTDS versionDownload URLPHP 5.2.x (vc6)Yes0.82 + 20090302 patchesDownload!No0.82 + 20090302 patchesDownload!PHP 5.3.x (vc9)Yes0.82 + 20090904 patchesDownload!No0.82 + 20090904 patchesDownload!PHP 5.4.x (vc9)Yes0.82 + 20110906 patchesDownload! FTP Download!No0.82 + 20110906 patchesDownload! FTP Download!2、 FreeTDS 需要安装 .NET Framework v1.1 ,你可以到微软的网站去下载。或者你去Frank's site 下载需要的DLL文件,并保存到你的/PHP根目录下面。
3、在php配置文件 /PHP/php.ini 中添加:
extension=php_dblib.dll
4、当php引擎启动FreeTDS模块的时候需要传递一些信息,使得FreeTDS能够连接到它的默认的数据库。因此它的需要在freetds.conf中定义数据库连接的基本信息,该文件在其根目录下,可以按照你的情况来进行修改:
[global] host = xxx.xxx.xxx.xxx (host name or ip of the MSSQL server) port = 1433 client charset = UTF-8 tds version = 8.0 text size = 20971520
5、创建config.php文档来定义数据库连接参数:
$CFG->dbtype = 'mssql'; // Required $CFG->dbhost = 'localhost'; // assuming MS SQL is on the same server, otherwise use an IP $CFG->dbname = 'moodle'; // or whatever you called the database you created $CFG->dbuser = 'yourusername'; // I usually use the 'sa' account (dbowner perms are enough) $CFG->dbpass = 'yourpassword'; $CFG->dbpersist = false; $CFG->prefix = 'mdl_'; //Prefix, you can change it, but NEVER leave it blank.
6、 重启你的网站,如果还是没有连接到你的数据库的话,在 /PHP/php.ini文件中将display_startup_errors改为"On",当你解决了这些问题之后再将错误报告改为“Off”;
7、测试你的网站,建立test.php文件,代码如下,访问http://www.php.cn/进行测试
<?php $link = mssql_connect('localhost', 'db_user', 'db_password'); if(!$link) { echo'Could not connect'; die('Could not connect: ' . mssql_error()); } echo'Successful connection'; mssql_close($link); ?>
以上就是php连接微软MSSQL(sql server)完全攻略 的内容,更多相关内容请关注PHP中文网(www.php.cn)!