โดยปรกติพื้นฐาน PHP สามารถ Connet กับ MSSQL ได้เลยใหมครับ

โดยปรกติพื้นฐาน PHP สามารถ Connet กับ MSSQL ได้เลยใหมครับ

เป็นการรัน PHP ผ่าน Apache + php + Linux

สามารถ Connet ได้เลยใหม หรือต้อง ลงอะไรเพิ่มก่อน ชักงงๆ

ไม่มีครับ บน windows จะมี compiled library lib_mssql.dll (ถ้าจำไม่ผิด) ถ้าบน *nix ต้องทำการติดตั้ง freetds แล้ว compile php ให้รู้จัก freetds ครับ

เพิ่มลิงค์ให้
http://www.freetds.org/
http://www.freetds.org/userguide/php.htm

แก้คำผิด

จะใช้ php + ฐานข้อมูล mssql บน linux เหรอครับ น้องตี่ … เพิ่งเคยได้ยินเหมือนกัน
ปกติบน windows สามารถใช้ php ร่วมกับ ฐานข้อมูล mssql ได้โดยติดต่อผ่านทาง odbc แต่หากเป็นบน linux คงต้องใช้วิธีตามที่ คุณ sheroku แนะนำ …

ต้องขอขอบคุณ น้องตี่ ที่ตั้งคำถามที่น่าสนใจ และ ขอบคุณ คุณ sheroku สำหรับคำตอบ ที่เป็นประโยชน์ (ความรู้ใหม่)

ป่าวครับ มีคนเขาถามมาอีกที เขาจะทำแบบนี้

บน windows ถ้าติดต่อผ่าน odbc ซึ่ง odbc function ใน php บางอย่างไม่สามารถทำงานได้อย่างถูกต้องครับ เช่น odbc_num_rows() ในบาง driver จะไม่สามารถใช้งานได้

บน windows แนะนำให้เปิด library mssql (php_mssql.dll) ดีกว่าครับทำงานได้อย่างถูกต้องมากกว่า รองรับ stored procedure ด้วย

บน *nix ที่เห็นว่าใช้งานได้ก็มีแต่ freetds ครับแต่ยังไม่สามารถใช้ได้กับ MSSQL 2005 ได้เสียที

พอดีมี project ที่ต้องสร้างให้ใช้งานได้ทั้ง MSSQL และ Oracle แต่ใช้งานบน platform *nix เลยต้องรู้ครับ ความจำเป็นแท้ๆ :slight_smile:

ดูเหมือนมันต้องการ Sybase เลย

หรือว่าลงแค่ php-Sybase ก็น่าจะใช้ได้

เพราะ Debian มี lib มาเลย

freetbs มันคืออะไรอะครับ

มา update ครับ

โดยลง Debian 4

ลง php5-sybase + freetbs-dev สองตัวนี้ก็สามารถต่อ mssql ได้แล้วครับ

test จาก script เล็กๆ

<html>
<body>
<?php
$con = mssql_connect ("<ip>", "sa", "");

freetds ต้องการ library ของ sybase ด้วยครับเนื่องจาก freetds สามารถใช้งานได้ทั้ง MSSQL และ Sybase ซึ่ง freetds เป็น app layer protocol เพื่อใช้ในการติดต่อโดยตรงกับ RDBMS ทั้ง 2 ตัว

http://packages.debian.org/etch/sqlrelay-freetds

ผมลง Compile .deb จาก source php ใหม่ ให้มันมี php5-mssql ด้วย

พบว่าก็รันได้เหมือนกัน แต่ ต้อง ปิด ext sybase ออกก่อน ไม่งั้นมันตีกัน

แหะๆ

หากเรา connect MSSQL Server version 6.5 เราจะใช้ driver ของ SyBASE ได้ครับ…
เนื่องจากว่า MS ซื้อ SQL Server มาจาก SyBASE

หลังจาก version 7.x ขึ้นมา…
MS ได้ทำการเปลี่ยน driver การเชื่อมต่อกับ MSSQL ครับ

เรื่องมันก็เป็นเช่นนี้แหลล… (ตำนานเก่าๆเมื่อสิบกว่าปีที่แล้ว)