PHP MySQL OOP (mysqli) บทความนี้จะเป็นตัวอย่างการเขียน PHP กับ MySQL Database ด้วย function ของ mysqli ซึ่งเป็น function ที่เป็นปัจจุบันล่าสุดที่แนะนำให้นำมาใช้กับ MySQL ทั้งนี้ mysqli ได้ถูกพัฒนาต่อมาจาก mysql แบบธรรมดา ฉะนั้นมันจึงได้ถูกพัฒนาแก้ไขข้อผิดพลาดต่าง ๆ มากมาย ทั้งประสิทธิภาพในการทำงาน ความเร็ว ความปลอดภัย รองรับการเขียนแบบ OOP และที่สำคัญคือแก้ปัญหาที่จะเป็นช่องโหว์ในการเขียนโปรแกรม ด้วยการสามารถทำ Prepared Statement หรือเราคุ้นเคยในรุปแบบการ Query แบบ Parameters ซึ่งรูปแบบนี้เองจะเป็นการปิดช่องโหว์ เกี่ยวการ Input ข้อมูล ที่เป็นแบบอักษรพิเศษต่าง ๆ ได้ รวมทั้งเป็นการป้องกันพวก SQL Injection ที่เป็นการ Hack ผ่าน SQL Statement ได้
MySQL Table
CREATE TABLE `customer` (
`CustomerID` varchar(4) NOT NULL,
`Name` varchar(50) NOT NULL,
`Email` varchar(50) NOT NULL,
`CountryCode` varchar(2) NOT NULL,
`Budget` double NOT NULL,
`Used` double NOT NULL,
PRIMARY KEY (`CustomerID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `customer` VALUES ('C001', 'Win Weerachai', '[email protected]', 'TH', 1000000, 600000);
INSERT INTO `customer` VALUES ('C002', 'John Smith', '[email protected]', 'UK', 2000000, 800000);
INSERT INTO `customer` VALUES ('C003', 'Jame Born', '[email protected]', 'US', 3000000, 600000);
INSERT INTO `customer` VALUES ('C004', 'Chalee Angel', '[email protected]', 'US', 4000000, 100000);
ฐานข้อมูลและตารางของ MySQL Database
connect.php (การเชื่อมต่อกับ Database)
<?php
ini_set('display_errors', 1);
error_reporting(~0);
$serverName = "localhost";
$userName = "root";
$userPassword = "root";
$dbName = "mydatabase";
$conn = new mysqli($serverName,$userName,$userPassword,$dbName);
if ($conn->connect_errno) {
echo $conn->connect_error;
exit;
}
else
{
echo "Database Connected.";
}
$conn->close();
?>
select.php (การ Select ข้อมูลแบบ 1 รายการ)
<?php
ini_set('display_errors', 1);
error_reporting(~0);
$serverName = "localhost";
$userName = "root";
$userPassword = "root";
$dbName = "mydatabase";
$conn = new mysqli($serverName,$userName,$userPassword,$dbName);
$sql = "SELECT * FROM customer";
$query = $conn->query($sql);
//$query->num_rows;
$result = $query->fetch_assoc();
if($result)
{
echo $result["CustomerID"]."<br>";
echo $result["Name"]."<br>";
echo $result["Email"]."<br>";
echo $result["CountryCode"]."<br>";
echo $result["Budget"]."<br>";
echo $result["Used"]."<br>";
}
$conn->close();
?>
list.php (การ Select ข้อมูลแบบแสดงหลายรายการ)
<?php
ini_set('display_errors', 1);
error_reporting(~0);
$serverName = "localhost";
$userName = "root";
$userPassword = "root";
$dbName = "mydatabase";
$conn = new mysqli($serverName,$userName,$userPassword,$dbName);
$sql = "SELECT * FROM customer";
$query = $conn->query($sql);
//$query->num_rows;
while($result = $query->fetch_assoc())
{
echo $result["CustomerID"]."<br>";
echo $result["Name"]."<br>";
echo $result["Email"]."<br>";
echo $result["CountryCode"]."<br>";
echo $result["Budget"]."<br>";
echo $result["Used"]."<br>";
echo "<hr>";
}
$conn->close();
?>
query.php (การ Query ข้อมูล เช่น Insert/Update/Delete)
<?php
ini_set('display_errors', 1);
error_reporting(~0);
$serverName = "localhost";
$userName = "root";
$userPassword = "root";
$dbName = "mydatabase";
$conn = new mysqli($serverName,$userName,$userPassword,$dbName);
// Insert
$sql = "INSERT INTO customer (CustomerID, Name, Email, CountryCode, Budget, Used)
VALUES ('C005','Weerachai Nukitram','[email protected]'
,'TH','6000000','0')";
$query = $conn->query($sql);
// Update
$sql = "UPDATE customer SET Used = '100000' WHERE CustomerID = 'C005' ";
$query = $conn->query($sql);
// Delete
$sql = "DEELTE FROM customer WHERE CustomerID = 'C005' ";
$query = $conn->query($sql);
if($query)
{
// result suscess
}
$conn->close();
?>
|