PHP SQL Server Configuration & Connect to Database (sqlsrv) |
PHP SQL Server Configuration & Connect to Database (sqlsrv) สำหรับ sqlsrv เป็น function ที่ถูกออกแบบไว้ติดต่อกับ Database ของ SQL Server โดยเฉพาะ และสามารถใช้ได้ตั้งแต่ Version PHP 5.2.x เป็นต้นไป ซึ่งจะมาทำหน้าที่ทดแทน function เดิมอย่าง mssql เหตุผลหลัก็คือ มันได้ถูกออกแบบให้ทำงานได้ดีกว่าเดิม ทำงานได้เร็ว และที่สำคัญ มันปลอดภัยกกว่าการใช้ในรูปแบบเดิม ๆ มาก เช่น รองรับแนวคิด OOP มากขึ้น การเขียนในรูปแบบของ Parameters Query และ Prepared Statement ที่จะผิดช่องโหว์ของการเกิดข้อผิดพลาดในการ Query ที่เกิดจากการรับค่าในรูปแบบต่าง ๆ รวมทั้งป้องกันการ Hack ผ่านพวก SQL Injection ได้เป็นอย่างดี
สำหรับ sqlsrv สามารถใช้ได้ตั้งแต่ PHP V 5.2.x เป็นต้นไป แต่ปัจจุบันแนะนำให้ใช้กับ PHP V 5.3 หรือ 5.4 เป็นต้นไป และในการติดตั้งจำเป็นจะต้องเปิดใช้งาน php_sqlsrv.dll ซึ่งเป็น extension สำหรับ sqlsrv แต่ในการเรียกใช้ extension จะต้องหาไฟล์ php_sqlsrv.dll ที่ตรงกับ Version ของ PHP ที่เรียกใช้ด้วย
php_sqlsrv.dll
Download php extension (sqlsrv,pdo) for PHP 5.4, PHP 5.5, PHP 5.6
อย่าลืมว่าจะต้องหาไฟล์ php_sqlsrv.dll ให้ตรงกับ Version ของ PHP ด้วย
อ่านเพิ่มเติมเกี่ยวกับ Version ของ PHP
http://php.net/manual/en/sqlsrv.requirements.php
การเรียกใช้งาน function ของ sqlsrv
connect.php
<html>
<head>
<title>ThaiCreate.Com PHP & SQL Server (sqlsrv)</title>
</head>
<body>
<?php
ini_set('display_errors', 1);
error_reporting(~0);
$serverName = "localhost";
$userName = "sa";
$userPassword = "";
$dbName = "mydatabase";
$connectionInfo = array("Database"=>$dbName, "UID"=>$userName, "PWD"=>$userPassword, "MultipleActiveResultSets"=>true);
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if($conn)
{
echo "Database Connected.";
}
else
{
die( print_r( sqlsrv_errors(), true));
}
sqlsrv_close($conn);
?>
</body>
</html>
ทดสอบการทำงาน
Error
Fatal error: Call to undefined function sqlsrv_connect() in D:\AppServ\www\myphp\connect.php on line 18
กรณีที่ Error นี้ นั่นคือ PHP ยังไม่รองรับ function ของ sqlsrv นั่นคือจะต้องทำการเปิด extension ใน php.ini ซะก่อน
ให้ Copy ไฟล์ php_sqlsrv.dll ไปไว้ในโฟเดอร์ของ extension
เปิดไฟล์ php.ini แล้วเปิด extension
extension=php_sqlsrv.dll
จากนั้น Restart ตัว Web Server ซะ 1 ครั้ง
Error
PHP Warning: PHP Startup: sqlsrv: Unable to initialize module\nModule compiled with module API=20090626, debug=0, thread-safety=0\nPHP compiled with module API=20060613, debug=0, thread-safety=1\nThese options need to match\n in Unknown on line 0
ถ้ายังไม่สามารถใช้งานได้ ให้ลองเปิด Log ของ Apache หรือ IIS ดูว่าถ้ามี Error นี้ แสดงว่าไฟล์ dll ที่ดาวน์โหลดมานั้นไม่ Support กับ PHP Version ที่ใช้งานอยู่ และอาจจะต้องหา Version ที่ตรงกับ PHP ที่เรียกใช้
วิธีการตรวจสอบง่าย ๆ ก็คือเรียกดูจาก phpinf(); ซึ่งจะต้องรองรับ sqlsrv
ซึ่งถ้าใช้งานได้แล้ว เราจะสามารถ Connect ไปยัง Database ของ SQL Server ได้เลย
|