ezSQL을 공부하면서 MSSQL에 연결하기 위해 PHP에서 제공하는 mssql_connect() 함수를 보고 전 세계적으로 널리 사용되는 오픈 소스 프로그래밍 언어인 PHP는 Microsoft의 데이터에 쉽게 연결할 수 있어야 한다고 생각했습니다. 실제 구현에 관해서는 ezSQL을 공부할 때 mssql_connect()와 PHP에서 제공하는 기타 함수를 보고 MSSQL에 연결하는 것을 보고 오픈소스이자 전 세계적으로 널리 사용되는 프로그래밍 언어인 PHP를 사용하면 쉽게 연결할 수 있을 것이라고 생각했습니다. Microsoft의 데이터입니다. 하지만 실제로 구현했을 때 많은 어려움을 겪었습니다.
처음에 다운로드한 PHP 버전은 5.93이었습니다. 다운로드하고 오랜 시간 동안 환경변수 등을 추가한 끝에 브라우저에서 phpinfo() 함수가 성공적으로 실행되었습니다. 그런 다음 전 세계에서 php_mssql.dll을 검색했을 때 mssql이 더 이상 PHP 버전 5.3 이상에서 기본적으로 지원되지 않는다는 것을 발견했습니다.
드디어 SQL Server용 PHP용 Microsoft Drivers 3.0을 찾았습니다. Microsoft의 제품이 이를 수행할 수 있어야 한다고 생각했지만 SQLSRV30.EXE를 실행할 수 없다는 사실을 알게 되었습니다. "SQLSRV30.EXE는 유효한 win32 프로그램이 아닙니다."
오랜 시간 동안 인터넷을 검색한 후 다음과 같은 가능한 방법을 요약했지만 그 전에 다음을 수행해야 합니다.
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
이 작업을 수행한 후 다음 세 가지 방법을 따라 데이터베이스에 연결할 수 있습니다.
다음 중 하나를 사용하세요. MSSQL에 연결하는 php 메소드가 함께 제공됩니다(5.3 이상 버전에는 해당되지 않음)
php ext 확장 라이브러리 폴더에 php_mssql.dll이 있는지 확인한 다음 PHP.ini의 구성에
;을 추가하세요. Extension=php_mssql.dll앞에 있는 ";"을 제거하세요.
그런 다음 연결을 테스트할 수 있습니다.
//连接MSSQL $conn=mssql_connect("实例名或者服务器IP","用户名","密码"); //测试连接 if($conn) { echo "连接成功"; }
2008년 7월 Microsoft는 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) SQLSRV30.EXE가 유효하지 않다고 나오는 경우 PHP Extension_dir 디렉터리에 DLL 파일을 추출합니다. win32 프로그램에 뭔가가 누락되었을 수 있습니다. 일부 라이브러리는 vc10이거나 관리자 권한으로 실행되지 않을 수 있습니다.
extension_dir = “C:PHPext”3) php.ini 구성 파일에서 해당 동적 링크 라이브러리 파일을 참조하세요
extension=php_sqlsrv_52_ts_vc6.dll
extension=php_pdo_sqlsrv_52_ts_vc 6.dll확장자=php_pdo .dll
52와 53은 PHP의 5.2.x 및 5.3.x 버전을 나타냅니다.
ts 및 nts의 경우 설치된 PHP 버전이 스레드로부터 안전한지 또는 스레드로부터 안전하지 않은지에 따라 다릅니다. ts는 스레드로부터 안전하고 nts는 스레드로부터 안전하지 않습니다.
4) Apache 다시 시작
연결 코드 테스트:
<?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는 실제로 오픈 소스입니다. 무료) Linux 시스템에서 Microsoft의 SQL 데이터베이스에 액세스하고 운영할 수 있는 C 라이브러리입니다. 이는 ODBC 라이브러리도 포함하는 Sybase의 db-lib 또는 ct-lib 라이브러리에서 사용할 수 있습니다. 많은 애플리케이션이 Sybase 또는 Microsoft SQL 서버에 연결할 수 있도록 합니다. FreeTDS는 소스 코드로 출시되므로 거의 모든 시스템에 컴파일하고 설치할 수 있습니다.
서버가 Windows 시스템인 경우 php_dblib.dll을 사용해야 합니다. (Unix용 FreeTDS 사용에 대한 자세한 내용.)
通常我们可以在这个网站上找到这些DLL文件- Frank Kromann's site, 但是它基本上很多都已经过时了,并且会引发很多的问题,因此我们推荐windows下使用PHP 5.2.x版本,并且看看下面的建议 :
1. 按照下面的表格来下载 php_dblib.dll 并且将其保存到 /PHP/ext 文件夹下面.
PHP version | Thread Safe | FreeTDS version | Download URL |
---|---|---|---|
PHP 5.2.x (vc6) | Yes | 0.82 + 20090302 patches | Download! |
No | 0.82 + 20090302 patches | Download! | |
PHP 5.3.x (vc9) | Yes | 0.82 + 20090904 patches | Download! |
No | 0.82 + 20090904 patches | Download! | |
PHP 5.4.x (vc9) | Yes | 0.82 + 20110906 patches | Download! FTP Download! |
No | 0.82 + 20110906 patches | Download! 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://localhost/test.php进行测试
<?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); ?>
以上就是本文的全部内容,希望对大家的学习有所帮助。
相关推荐:
위 내용은 Microsoft MSSQL(SQL Server)과 PHP 연결 안내의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!