เชื่อมต่อกับฐานข้อมูล MySQL

PHP ตั้งแต่เวอร์ชั่น 5 เป็นต้นไปสามารถใช้งาน MySQL ได้ดังนี้

  • MySQLi ซึ่ง “i” มาจากคำว่า improve (การปรับปรุง)
  • PDO (PHP Data Objects)

เปรียบเทียบ mysqli กับ PDO

MySQLi PDO
ทำงานได้เฉพาะกับฐานข้อมูล MySQL เท่านั้น

สามารถทำงานกับฐานข้อมูลที่มีความแตกต่างกัน ถึง 12 ฐานข้อมูล ดังนี้ 1)MySQL ,2)PostgreSQL, 3)Oracle, 4)Firebird, 5)MS SQL Server, 6)Sybase, 7)Informix, 8)IBM 9)FreeTDS, 10)SQLite, 11)Cubrid, 12)4D

เมื่อนำไปใช้กับฐานข้อมูลอื่นจะต้องเขียนโค้ดใหม่ทั้งหมด เมื่อนำไปใช้กับฐานข้อมูลอื่น เปลี่ยนสตริงสำหรับการ query เพียงเล็กน้อยก็สามารถทำงานได้
  • เชิงวัตถุ (Object oriented)
  •  กระบวนการ API
  • เชิงวัตถุ (Object oriented)

 

สร้างการเชื่อมต่อกับฐานข้อมูล MySQL

ก่อนอื่นต้องทำการเชื่อมต่อกับฐานข้อมูล MySQL ให้สำเร็จ เพื่อที่จะสามารถจัดการกับข้อมูลภายในฐานข้อมูลได้ 

1.MySQLi เชิงวัตถุ (Object oriented)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// สร้างการเชื่อมต่อ
$conn = new mysqli($servername, $username, $password);

// เช็คสถานะการเชื่อมต่อ
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
echo "กำลังเชื่อมต่อ";
?>

ไฟล์ที่ 1 connect_mysqli_1.php

จากไฟล์ที่ 1 

2. MySQLi กระบวนการ (Procedural)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// สร้างการเชื่อมต่อ
$conn = mysqli_connect($servername, $username, $password);

// เช็คสถานะการเชื่อมต่อกับฐานข้อมูล
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}
echo "กำลังเชื่อมต่อกับฐานข้อมูล";
?>

ไฟลที่ 2 connect_mysqli_2.php

3.PDO (Object oriented)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  // set the PDO error mode to exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
?>

ไฟล์ที่ 3 connect_pdo.php

 

ปิดการเชื่อมต่อ

1.MySQLi เชิงวัตถุ (Object oriented)

$conn->close();

ปิดการเชื่อมต่อไฟล์ที่ 1

2. MySQLi กระบวนการ (Procedural)

mysqli_close($conn);

ปิดการเชื่อมต่อไฟล์ที่ 2

3.PDO (Object oriented)

$conn = null;

ปิดการเชื่อมต่อไฟล์ที่ 3