PHP SQL Server Prepared Statement / Store Procedure (PDO) |
PHP SQL Server Prepared Statement / Store Procedure (PDO) บทความนี้จะเป็นการสรุปคำสั่งและรูปแบบการใช้ PHP ติดต่อกับ SQL Server Database ผ่าน function ของ PDO กับ sqlsrv แบบกระทัดรัด รวดรัด ว่าในแต่ล่ะรูปแบบที่จำเป็นต่อการใช้งานนั้นมีรูปแบบอย่างไรบ้าง ซึ่งในบทความนี้แทบจะเรียกได้ว่า ครบสำหรับการใช้งานพื้นฐานทั่ว ๆ ไปเลยทีเดียว
จะเห็นได้ว่าในการ Query ผ่าน PDO กับ sqlsrv จะเลือกใช้แบบ Prepared Statement หรือแบบ Parameters Query ทั้งนี้เพื่อเป็นการลดปัญหาหรือข้อผิดพลาด ช่องโหว์ ที่จะให้การทำงานของโปรแกรมนั้นผิดพลาดได้ เมื่อพบกับข้อมูลในรูปแบบต่าง ๆ
insert.php (การ Insert ข้อมูล)
<?php
ini_set('display_errors', 1);
error_reporting(~0);
$serverName = "localhost";
$userName = "sa";
$userPassword = "";
$dbName = "mydatabase";
$conn = new PDO("sqlsrv:server=$serverName ; Database = $dbName", $userName, $userPassword);
$strCustomerID = "C005";
$strName = "Weerachai Nukitram";
$strEmail = "[email protected]";
$strCountryCode = "TH";
$strBudget = "6000000";
$strUsed = "0";
$sql = "INSERT INTO customer (CustomerID, Name, Email, CountryCode, Budget, Used) VALUES (?, ?, ?, ?, ?, ?)";
$params = array($strCustomerID, $strName, $strEmail, $strCountryCode, $strBudget, $strUsed);
$stmt = $conn->prepare($sql);
$stmt->execute($params);
if( $stmt->rowCount() ) {
echo "Record add successfully";
}
$conn = null;
?>
select.php (การ Select ข้อมูล แบบ 1 รายการ)
<?php
ini_set('display_errors', 1);
error_reporting(~0);
$serverName = "localhost";
$userName = "sa";
$userPassword = "";
$dbName = "mydatabase";
$strCustomerID = "C001";
$conn = new PDO("sqlsrv:server=$serverName ; Database = $dbName", $userName, $userPassword);
$sql = "SELECT * FROM customer WHERE CustomerID = ? ";
$params = array($strCustomerID);
$stmt = $conn->prepare($sql);
$stmt->execute($params);
$result = $stmt->fetch( PDO::FETCH_ASSOC );
echo $result["Name"]
?>
list.php (การ Select ข้อมูลบบแสดงรายการ)
<?php
ini_set('display_errors', 1);
error_reporting(~0);
$serverName = "localhost";
$userName = "sa";
$userPassword = "";
$dbName = "mydatabase";
$strCustomerID = "C001";
$conn = new PDO("sqlsrv:server=$serverName ; Database = $dbName", $userName, $userPassword);
$sql = "SELECT * FROM customer WHERE CustomerID = ? ";
$params = array($strCustomerID);
$stmt = $conn->prepare($sql);
$stmt->execute($params);
while($result = $stmt->fetch( PDO::FETCH_ASSOC ))
{
//$result["CustomerID"];
}
?>
update.php (การ Update ข้อมูล)
<?php
ini_set('display_errors', 1);
error_reporting(~0);
$serverName = "localhost";
$userName = "sa";
$userPassword = "";
$dbName = "mydatabase";
$conn = new PDO("sqlsrv:server=$serverName ; Database = $dbName", $userName, $userPassword);
$strName = "Weerachai Nukitram";
$strEmail = "[email protected]";
$strCountryCode = "TH";
$strBudget = "6000000";
$strUsed = "100000";
$strCustomerID = "C005";
$sql = "UPDATE customer SET
Name = ? ,
Email = ? ,
CountryCode = ? ,
Budget = ? ,
Used = ?
WHERE CustomerID = ? ";
$params = array($strName, $strEmail, $strCountryCode, $strBudget, $strUsed,$strCustomerID);
$stmt = $conn->prepare($sql);
$stmt->execute($params);
if( $stmt->rowCount() ) {
echo "Record update successfully";
}
$conn = null;
?>
delete.php (การ Delete ข้อมูล)
<?php
ini_set('display_errors', 1);
error_reporting(~0);
$serverName = "localhost";
$userName = "sa";
$userPassword = "";
$dbName = "mydatabase";
$conn = new PDO("sqlsrv:server=$serverName ; Database = $dbName", $userName, $userPassword);
$strCustomerID = "C005";
$sql = "DELETE FROM customer
WHERE CustomerID = ? ";
$params = array($strCustomerID);
$stmt = $conn->prepare($sql);
$stmt->execute($params);
if( $stmt->rowCount() ) {
echo "Record delete successfully";
}
$conn = null;
?>
storet.php (การเรียกใช้งาน Store Procedure)
<?php
ini_set('display_errors', 1);
error_reporting(~0);
$serverName = "localhost";
$userName = "sa";
$userPassword = "";
$dbName = "mydatabase";
$conn = new PDO("sqlsrv:server=$serverName ; Database = $dbName", $userName, $userPassword);
$stmt = $conn->prepare(" CALL my_stored_procedure(?) ");
$stmt->execute();
$conn = null;
?>
.
|