นอกจาก เชื่อมต่อเข้า MS SQL Server จากลีนุกซ์ด้วย freetds ได้แล้ว เราสามารถเขียนโปรแกรม PHP รันบนลีนุกซ์หรือยูนิกส์เพื่อดึงข้อมลูจาก MS SQL Server โดยใช้โมดูล php-mssql ได้
เช่นเดียวกันกับ freetds เราต้องติดตั้งแพ็คเกจ php-mssql เพิ่มเติม ซึ่งมีอยู่ใน EPEL repo
ตัวอย่างในที่นี้ ทดลองบน CentOS 6 ที่มี php ติดตั้งอยู่บ้างแล้ว
[root@cent6 ~]# rpm -qa | grep php php-mysql-5.3.3-22.el6.x86_64 php-common-5.3.3-22.el6.x86_64 php-pdo-5.3.3-22.el6.x86_64 php-5.3.3-22.el6.x86_64 php-cli-5.3.3-22.el6.x86_64
ใช้คำสั่ง yum ติดตั้ง php-mssql
[root@cent6 ~]# yum install php-mssql Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * base: mirror.neu.edu.cn * epel: ftp.jaist.ac.jp * extras: mirror.neu.edu.cn * updates: ftp.cuhk.edu.hk Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package php-mssql.x86_64 0:5.3.3-1.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: php-mssql x86_64 5.3.3-1.el6 epel 27 k Transaction Summary ================================================================================ Install 1 Package(s) Total download size: 27 k Installed size: 69 k Is this ok [y/N]: y Downloading Packages: php-mssql-5.3.3-1.el6.x86_64.rpm | 27 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : php-mssql-5.3.3-1.el6.x86_64 1/1 Verifying : php-mssql-5.3.3-1.el6.x86_64 1/1 Installed: php-mssql.x86_64 0:5.3.3-1.el6 Complete! [root@cent6 ~]#
ลองใช้คำสั่ง php -m เพื่อดูชื่อโมดูล mssql ที่ได้จากการติดตั้ง
[root@cent6 ~]# php -m | grep mssql mssql
ต้องรีสตาร์ตเว็บเซิร์ฟเวอร์ใหม่ด้วย เพื่อให้โมดูลที่ติดตั้งใหม่มีผล
[root@cent6 ~]# service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ] [root@cent6-dev ~]#
ตัวอย่างการเขียนโปรแกรม php เพื่อใช้โมดูลหรือฟังก์ชั่น mssql เชื่อมต่อเข้ากับ SQL Server
[user1@cent6 ~]$ cat test-mssql.php <?php mssql_connect('192.168.1.10', 'sa', 'password'); //mssql_select_db('master'); $version = mssql_query('SELECT @@VERSION'); $row = mssql_fetch_array($version); print_r($row);
?>
หากเคยเขียน php เชื่อมต่อเข้า mysql (แบบเก่า) มาก่อน จะเห็นว่ารูปแบบการใช้และชื่อฟังก์ชั่นของ mssql จะคล้ายกับฟังก์ชั่นของ mysql เลย
ทดลองรันโปรแกรม
[user1@cent6 ~]$ php test-mssql.php Array ( [0] => Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Enterprise Evaluation Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) [computed] => Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Enterprise Evaluation Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) )
ลองนำไปใช้กันดูครับ