การทดสอบเชื่อมต่อฐานข้อมูลด้วย PHP บน Debian 10

หากต้องการทดสอบว่า PHP สามารถเชื่อมต่อกับ MariaDB และสามารถดำเนินการค้นหาฐานข้อมูลได้หรือไม่ เราสามารถสร้างตารางทดสอบที่มีข้อมูลทดสอบและค้นหาเนื้อหาจากสคริปต์ PHP โดยเราต้องเริ่มจากสร้างฐานข้อมูลและกำหนดค่าผู้ใช้ MariaDB ใหม่ให้เหมาะสมเพื่อเข้าถึงฐานข้อมูล

ขั้นแรก ให้เชื่อมต่อกับคอนโซล MariaDB โดยใช้บัญชี root

sudo mariadb

ในการสร้างฐานข้อมูลใหม่ ให้เรียกใช้คำสั่งต่อไปนี้จากคอนโซล MariaDB

CREATE DATABASE example_database;

ตอนนี้ให้สร้างผู้ใช้ใหม่และให้สิทธิ์เต็มรูปแบบแก่พวกเขาในฐานข้อมูลที่สร้างขึ้น

คำสั่งต่อไปนี้จะสร้างผู้ใช้ใหม่ชื่อ example_user ที่จะตรวจสอบความถูกต้องด้วยรหัสผ่าน เรากำลังกำหนดคำว่า password ของผู้ใช้เป็นรหัสผ่าน แต่คุณควรแทนที่ค่านี้ด้วยรหัสผ่านที่คุณกำหนดเอง

CREATE USER 'example_user'@'%' IDENTIFIED BY 'password';

ถัดไป ให้สิทธิ์ผู้ใช้รายนี้จัดการฐานข้อมูล example_database

GRANT ALL ON example_database.* TO 'example_user'@'%';

การดำเนินการนี้จะทำให้ผู้ใช้ example_user มีสิทธิ์ใช้งานฐานข้อมูล example_database เต็มรูปแบบ และเป็นการป้องกันไม่ให้ผู้ใช้รายนี้สร้างหรือแก้ไขฐานข้อมูลอื่นบนเซิร์ฟเวอร์

จากนั้น FLUSH PRIVILEGES เพื่อให้แน่ใจว่าสิทธิ์ใช้งานได้รับการบันทึกและพร้อมใช้งานในเซสชันปัจจุบัน

FLUSH PRIVILEGES;

จากนั้นออกจาก MariaDB Shell

exit

สามารถทดสอบได้ว่าผู้ใช้ใหม่มีสิทธิ์ที่เหมาะสมหรือไม่โดยเข้าสู่ระบบคอนโซล MariaDB อีกครั้ง โดยใช้รายละเอียดผู้ใช้และรหัสผ่านที่เรากำหนดขึ้นมาเอง

mariadb -u example_user -p

โปรดสังเกต -p flag ในคำสั่งนี้ ซึ่งจะแจ้งให้ป้อนรหัสผ่านที่ใช้เมื่อสร้าง example_user หลังจากล็อกอินเข้าสู่คอนโซล MariaDB แล้ว ให้ยืนยันว่าคุณสามารถเข้าถึง example_database ได้

SHOW DATABASES;

จะแสดงให้เห็นผลลัพธ์ดังนี้

ขั้นที่สอง ต่อไปคือสร้างตารางทดสอบ

สร้างตารางทดสอบชื่อ todo_list จากคอนโซล MariaDB โดยการรันคำสั่งต่อไปนี้

CREATE TABLE example_database.todo_list (
	item_id INT AUTO_INCREMENT,
	content VARCHAR(255),
	PRIMARY KEY(item_id)
);

จากนั้น แทรกเนื้อหาสองสามแถวลงในตารางทดสอบ ทำซ้ำคำสั่งถัดไปสองสามครั้งโดยใช้ค่าที่แตกต่างกันเพื่อเติมลงในตารางทดสอบ

INSERT INTO example_database.todo_list (content) VALUES ("My first important item");
INSERT INTO example_database.todo_list (content) VALUES ("My second important item");
INSERT INTO example_database.todo_list (content) VALUES ("My third important item");

เพื่อยืนยันว่าข้อมูลได้รับการบันทึกลงในตารางของคุณเรียบร้อยแล้ว ให้รันคำสั่ง

SELECT * FROM example_database.todo_list;

ผลลัพธ์ที่ได้จะเป็นดังต่อไปนี้

หลังจากคอนเฟิร์มผลลัพธ์ที่ได้จากการทดสอบแล้ว สามารถออกจากฐานข้อมูล โดยใช้คำสั่ง

exit

ตอนนี้คุณสามารถสร้างสคริปต์ PHP ที่จะเชื่อมต่อกับ MariaDB และค้นหาเนื้อหาของคุณได้แล้ว สร้างไฟล์ PHP ใหม่ในไดเร็กทอรีรูทเว็บแบบกำหนดเองโดยใช้โปรแกรมแก้ไขที่คุณต้องการ ตัวอย่างนี้ใช้ nano (อย่าลืมแก้ไขคำว่า your_domain เป็นชื่อโดเมนของคุณ)

nano /var/www/your_domain/todo_list.php

สคริปต์ PHP ต่อไปนี้จะเชื่อมต่อกับฐานข้อมูล MariaDB และค้นหาเนื้อหาของตาราง todo_list โดยแสดงผลลัพธ์เป็นรายการ หากมีปัญหาในการเชื่อมต่อฐานข้อมูล สคริปต์จะแสดงข้อยกเว้น

เพิ่มเนื้อหาต่อไปนี้ลงในสคริปต์ todo_list.php ของคุณ โดยอย่าลืมแทนที่ค่า example_user และ password ด้วยค่าของคุณเอง

<?php
$user = "example_user";
$password = "password";
$database = "example_database";
$table = "todo_list";

try {
  $db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
  echo "<h2>TODO</h2><ol>"; 
  foreach($db->query("SELECT content FROM $table") as $row) {
    echo "<li>" . $row['content'] . "</li>";
  }
  echo "</ol>";
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}

บันทึกและปิดไฟล์หากแก้ไขเรียบร้อยแล้ว

ตอนนี้คุณสามารถเข้าถึงหน้านี้ในเว็บเบราว์เซอร์ของคุณได้โดยไปที่ชื่อโดเมนหรือที่อยู่ IP สาธารณะสำหรับเว็บไซต์ของคุณ แล้วตามด้วย /todo_list.php

http://your_domain/todo_list.php

หน้าเว็บจะแสดงเนื้อหาที่เราเพิ่มไว้ดังรูปภาพต่อไปนี้

Was this article helpful?

Related Articles