មេរៀន 5៖ ការណែនាំអំពី Databases និង MySQL
- យល់ដឹងអំពីទិដ្ឋភាពទូទៅនៃ Databases និងសារៈសំខាន់របស់វាក្នុងការអភិវឌ្ឍកម្មវិធី។
- អាចភ្ជាប់ និងប្រើប្រាស់ MySQL ជាមួយ PHP ដើម្បីធ្វើអន្តរកម្មជាមួយ Database។
- រៀនបង្កើត និងគ្រប់គ្រង Database និង Tables ក្នុង MySQL។
- ស្វែងយល់ពីការប្រើប្រាស់ SQL Queries មូលដ្ឋានសម្រាប់ការគ្រប់គ្រងទិន្នន័យ។
- អនុវត្តជាក់ស្តែងក្នុងការបង្កើត Database សម្រាប់គម្រោងតូចមួយ។
Database គឺជាប្រព័ន្ធសម្រាប់រក្សាទុក និងគ្រប់គ្រងទិន្នន័យប្រកបដោយរបៀប។ វាត្រូវបានប្រើក្នុងកម្មវិធីដើម្បីរក្សាទុកព័ត៌មានដូចជា ទិន្នន័យអ្នកប្រើ ឬផលិតផល។ MySQL គឺជា Relational Database Management System (RDBMS) ដែលប្រើ SQL (Structured Query Language) សម្រាប់ការគ្រប់គ្រងទិន្នន័យ។
- Database: ជាឃ្លាំងទិន្នន័យដែលមានតារាង (tables)។
- Table: ផ្ទុកទិន្នន័យក្នុងជួរដេក (rows) និងជួរឈរ (columns)។
- Primary Key: ជា column ដែលកំណត់អត្តសញ្ញាណតែមួយគត់សម្រាប់ជួរដេកនីមួយៗ។
- SQL: ភាសាសម្រាប់សួរសុំ និងកែប្រែទិន្នន័យ។
PHP អាចភ្ជាប់ជាមួយ MySQL ដើម្បីធ្វើអន្តរកម្មជាមួយ Database។ យើងប្រើ extension ដូចជា mysqli
ឬ PDO
ដើម្បីភ្ជាប់ និងគ្រប់គ្រងទិន្នន័យ។
// ភ្ជាប់ MySQL ដោយប្រើ mysqli
$conn = new mysqli("localhost", "username", "password", "database_name");
// ពិនិត្យការភ្ជាប់
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
// បង្កើតការភ្ជាប់
$conn = new mysqli($servername, $username, $password, $dbname);
// ពិនិត្យការភ្ជាប់
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully!";
// បិទការភ្ជាប់
$conn->close();
?>
$conn = new mysqli(...)
បង្កើតការភ្ជាប់ទៅ MySQL server ដោយប្រើ hostname (localhost
), username, password, និង database name។connect_error
ពិនិត្យថាតើការភ្ជាប់ជោគជ័យឬអត់។ បើមានបញ្ហាdie()
បញ្ឈប់កម្មវិធី។$conn->close()
បិទការភ្ជាប់បន្ទាប់ពីប្រើរួច។
ក្នុង MySQL យើងអាចបង្កើត Database និង Tables ដោយប្រើ SQL Commands។ ការគ្រប់គ្រងរួមមានការបង្កើត កែប្រែ និងលុប។
-- បង្កើត Database
CREATE DATABASE database_name;
-- បង្កើត Table
CREATE TABLE table_name (
column1 datatype PRIMARY KEY,
column2 datatype,
...
);
-- លុប Database
DROP DATABASE database_name;
-- លុប Table
DROP TABLE table_name;
-- បង្កើត Database
CREATE DATABASE school;
-- ប្រើ Database
USE school;
-- បង្កើត Table
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
age INT
);
CREATE DATABASE school
បង្កើត Database ឈ្មោះ "school"។USE school
ជ្រើសរើស Database ដើម្បីប្រើ។CREATE TABLE students
បង្កើត Table ឈ្មោះ "students" ដែលមាន columns:id
: លេខសម្គាល់តែមួយគត់ ដែលបង្កើតដោយស្វ័យប្រវត្តិ (AUTO_INCREMENT
)។name
: ឈ្មោះសិស្ស (អក្សរអតិបរមា ១០០)។age
: អាយុសិស្ស (លេខ)។
SQL Queries ត្រូវបានប្រើសម្រាប់ការគ្រប់គ្រងទិន្នន័យ ដូចជាការបញ្ចូល សួរសុំ កែប្រែ និងលុបទិន្នន័យ។
INSERT INTO
: បញ្ចូលទិន្នន័យថ្មី។SELECT
: សួរសុំទិន្នន័យ។UPDATE
: កែប្រែទិន្នន័យ។DELETE
: លុបទិន្នន័យ។
-- បញ្ចូលទិន្នន័យ
INSERT INTO table_name (column1, column2) VALUES (value1, value2);
-- សួរសុំទិន្នន័យ
SELECT column1, column2 FROM table_name WHERE condition;
-- កែប្រែទិន្នន័យ
UPDATE table_name SET column1 = value1 WHERE condition;
-- លុបទិន្នន័យ
DELETE FROM table_name WHERE condition;
-- បញ្ចូលទិន្នន័យ
INSERT INTO students (name, age) VALUES ('Sok', 20);
-- សួរសុំទិន្នន័យ
SELECT * FROM students WHERE age > 18;
-- កែប្រែទិន្នន័យ
UPDATE students SET age = 21 WHERE name = 'Sok';
-- លុបទិន្នន័យ
DELETE FROM students WHERE id = 1;
INSERT INTO
បញ្ចូលទិន្នន័យសិស្សថ្មី (Sok, អាយុ ២០)។SELECT *
សួរសុំទិន្នន័យសិស្សដែលមានអាយុលើសពី ១៨ ឆ្នាំ។UPDATE
កែប្រែអាយុរបស់ Sok ទៅ ២១។DELETE
លុបសិស្សដែលមានid = 1
។
សិស្សត្រូវបង្កើតកម្មវិធី PHP ដែលភ្ជាប់ទៅ MySQL ដើម្បីគ្រប់គ្រង Database សម្រាប់គម្រោងតូចមួយ។ គម្រោងនេះជា "Student Management System" ដែលមាន៖
- បង្កើត Database និង Table សម្រាប់រក្សាទុកព័ត៌មានសិស្ស។
- បញ្ចូលទិន្នន័យសិស្សថ្មី។
- បង្ហាញបញ្ជីសិស្សទាំងអស់។
- អនុញ្ញាតឱ្យកែប្រែ និងលុបសិស្ស។
<!DOCTYPE html>
<html>
<head>
<title>Student Management System</title>
</head>
<body>
<h2>Student Management System</h2>
<form method="post">
<label>Name:</label><br>
<input type="text" name="name"><br>
<label>Age:</label><br>
<input type="number" name="age"><br>
<input type="submit" name="add" value="Add Student">
</form>
<h3>Student List</h3>
<table border="1">
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
<th>Actions</th>
</tr>
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "school";
// ភ្ជាប់ Database
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// បញ្ចូលទិន្នន័យ
if (isset($_POST['add'])) {
$name = $_POST['name'];
$age = $_POST['age'];
$sql = "INSERT INTO students (name, age) VALUES ('$name', $age)";
$conn->query($sql);
}
// លុបទិន្នន័យ
if (isset($_GET['delete'])) {
$id = $_GET['delete'];
$sql = "DELETE FROM students WHERE id = $id";
$conn->query($sql);
}
// សួរសុំទិន្នន័យ
$sql = "SELECT * FROM students";
$result = $conn->query($sql);
while ($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['age'] . "</td>";
echo "<td><a href='?delete=" . $row['id'] . "'>Delete</a></td>";
echo "</tr>";
}
$conn->close();
?>
</table>
</body>
</html>
- ទម្រង់បញ្ចូល: អ្នកប្រើបញ្ចូលឈ្មោះ និងអាយុរបស់សិស្សតាម
<form>
។ - ការភ្ជាប់ Database: ប្រើ
mysqli
ដើម្បីភ្ជាប់ទៅ Database "school"។ - បញ្ចូលទិន្នន័យ: នៅពេលចុច "Add Student" ទិន្នន័យត្រូវបញ្ចូលទៅក្នុង Table
students
។ - បង្ហាញទិន្នន័យ: ប្រើ
SELECT *
ដើម្បីទាញទិន្នន័យសិស្សទាំងអស់ ហើយបង្ហាញក្នុង<table>
។ - លុបទិន្នន័យ: ប្រើ
<a>
link ដើម្បីលុបសិស្សដោយផ្អែកលើid
។
- ត្រូវបង្កើត Database និង Table ដោយប្រើ MySQL (ឧទាហរណ៍៖ ប្រើ phpMyAdmin ឬ MySQL command line) មុននឹងសាកល្បងកូដ។
- សាកល្បងបន្ថែមមុខងារកែប្រែ (UPDATE) ដោយបន្ថែមទម្រង់មួយផ្សេងទៀត។
- ពិនិត្យសុវត្ថិភាពដោយប្រើ
mysqli_real_escape_string
ដើម្បីការពារការវាយប្រហារ SQL Injection។
មេរៀននេះបានណែនាំអំពី Databases និង MySQL ដោយផ្តោតលើការភ្ជាប់ជាមួយ PHP ការបង្កើត Database និង Tables និងការប្រើ SQL Queries មូលដ្ឋាន។ តាមរយៈ Lab សិស្សបានអនុវត្តជាក់ស្តែងក្នុងការបង្កើត Student Management System ដែលជួយពង្រឹងចំណេះដឹងអំពី Database។