Bài giảng Phát triển ứng dụng web - Bài 3: PHP Database - Nguyễn Hữu Thể

Nội dung

▪ PHP MySQL Introduction

▪ PHP MySQL Connect to a Database

▪ PHP MySQL Create Database and Tables

▪ PHP MySQL Insert Into

▪ PHP MySQL Select

▪ PHP MySQL The Where Clause

▪ PHP MySQL Order By Keyword

▪ PHP MySQL Update

▪ PHP MySQL Delete

▪ MySQL & Font Unicode

▪ MySQLi

Bài giảng Phát triển ứng dụng web - Bài 3: PHP Database - Nguyễn Hữu Thể trang 1

Trang 1

Bài giảng Phát triển ứng dụng web - Bài 3: PHP Database - Nguyễn Hữu Thể trang 2

Trang 2

Bài giảng Phát triển ứng dụng web - Bài 3: PHP Database - Nguyễn Hữu Thể trang 3

Trang 3

Bài giảng Phát triển ứng dụng web - Bài 3: PHP Database - Nguyễn Hữu Thể trang 4

Trang 4

Bài giảng Phát triển ứng dụng web - Bài 3: PHP Database - Nguyễn Hữu Thể trang 5

Trang 5

Bài giảng Phát triển ứng dụng web - Bài 3: PHP Database - Nguyễn Hữu Thể trang 6

Trang 6

Bài giảng Phát triển ứng dụng web - Bài 3: PHP Database - Nguyễn Hữu Thể trang 7

Trang 7

Bài giảng Phát triển ứng dụng web - Bài 3: PHP Database - Nguyễn Hữu Thể trang 8

Trang 8

Bài giảng Phát triển ứng dụng web - Bài 3: PHP Database - Nguyễn Hữu Thể trang 9

Trang 9

Bài giảng Phát triển ứng dụng web - Bài 3: PHP Database - Nguyễn Hữu Thể trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 35 trang xuanhieu 7440
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Phát triển ứng dụng web - Bài 3: PHP Database - Nguyễn Hữu Thể", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Phát triển ứng dụng web - Bài 3: PHP Database - Nguyễn Hữu Thể

Bài giảng Phát triển ứng dụng web - Bài 3: PHP Database - Nguyễn Hữu Thể
PHÁT TRIỂN ỨNG DỤNG WEB
 Bài 3:
 PHP Database
 Nguyễn Hữu Thể
 1
 Nội dung
▪ PHP MySQL Introduction
▪ PHP MySQL Connect to a Database
▪ PHP MySQL Create Database and Tables
▪ PHP MySQL Insert Into
▪ PHP MySQL Select
▪ PHP MySQL The Where Clause
▪ PHP MySQL Order By Keyword
▪ PHP MySQL Update
▪ PHP MySQL Delete
▪ MySQL & Font Unicode
▪ MySQLi
 2
 PHP MySQL Introduction
− MySQL là hệ cơ sở dữ liệu nguồn mở phổ biến nhất.
− Một cơ sở dữ liệu thường bao gồm một hoặc nhiều table. 
 ▪ Mỗi table được xác định bởi một tên (ví dụ: " Customers" hoặc " 
 Orders"). 
 ▪ Table chứa các records (rows) với các dữ liệu.
− Ví dụ: table "Persons":
 3
 Queries
− Một query là một câu hỏi hoặc yêu cầu.
− Với MySQL, chúng ta có thể truy vấn một cơ sở dữ liệu để có 
 thông tin cụ thể và trả về một recordset.
− Xem câu truy vấn sau:
− Câu truy vấn trên chọn tất cả các dữ liệu trong cột "LastName", 
 và trả về một recordset như sau:
 4
 PHP MySQL Create Database and Tables
− Một cơ sở dữ liệu chứa một hoặc nhiều table.
❖ Create a Database
− CREATE DATABASE : tạo ra một cơ sở dữ liệu MySQL.
❖ Syntax
 Ví dụ: tạo database có tên là myDB
 CREATE DATABASE myDB
 5
 Create a Table
− CREATE TABLE : tạo ra một bảng trong MySQL.
❖ Syntax
 Ví dụ: tạo table MyGuest: AUTO_INCREMENT :
 CREATE TABLE MyGuests ( tự động tăng giá trị 
 id INT AUTO_INCREMENT PRIMARY KEY, của field lên 1 mỗi khi 
 firstname VARCHAR(30) NOT NULL, một record mới được 
 thêm vào. 
 lastname VARCHAR(30) NOT NULL,
 email VARCHAR(50),
 reg_date TIMESTAMP
 )
 6
 PHP MySQL Insert Into
❖ Syntax
− Không xác định tên cột dữ liệu được chèn vào, chỉ đưa vào giá trị
 INSERT INTO table_name VALUES (value1, value2, value3,...)
− Quy định cụ thể cả các tên cột và các giá trị sẽ được chèn vào
 INSERT INTO table_name (column1, column2, column3,...) 
 VALUES (value1, value2, value3,...)
 Ví dụ:
 INSERT INTO MyGuests (firstname, lastname, email)
 VALUES (‘Khánh', 'Nguyễn', ‘khanh@example.com')
 7
 PHP MySQL Select
− Câu lệnh SELECT được sử dụng để chọn dữ liệu từ một cơ sở dữ 
 liệu.
❖ Syntax
 8
 PHP MySQL The Where Clause
− Mệnh đề WHERE được sử dụng để trích xuất các record theo 
 một tiêu chuẩn quy định.
❖ Syntax:
 SELECT id, firstname, lastname FROM MyGuests
 9
 PHP MySQL Order By Keyword
− Từ khoá ORDER BY : sắp xếp dữ liệu trong một recordset.
− ORDER BY sắp xếp records theo thứ tự tăng dần (mặc định).
− Nếu muốn thứ tự giảm dần, sử dụng từ khoá DESC.
❖ Syntax:
 10
 PHP MySQL Update
− Câu lệnh UPDATE : sửa đổi dữ liệu trong một table.
❖ Syntax
 UPDATE MyGuests SET lastname='Kiệt' WHERE id=2
 11
 PHP MySQL Delete
− Câu lệnh DELETE : xóa các record trong một table.
❖ Syntax
 DELETE FROM MyGuests WHERE id=3
 12
 Limit
SELECT * FROM MyGuests LIMIT 30
SELECT * FROM MyGuests LIMIT 15, 10
 13
 PHP MySQL Connect to a Database
− PHP 5 and later can work with a MySQL database using:
 ▪ MySQLi extension (the "i" stands for improved)
 ▪ PDO (PHP Data Objects)
− Should I Use MySQLi or PDO?
 ▪ PDO will work on 12 different database systems, whereas 
 MySQLi will only work with MySQL databases.
 ▪ Both are object-oriented, but MySQLi also offers a 
 procedural API.
 ▪ Both support Prepared Statements. Prepared Statements 
 protect from SQL injection.
 14
 MySQLi and PDO
− Three ways of working with PHP and MySQL:
 ▪ MySQLi (object-oriented)
 ▪ MySQLi (procedural)
 ▪ PDO
 15
 Open a Connection to MySQL
MySQLi Object-Oriented MySQLi Procedural
 <?php <?php
 $servername = "localhost"; $servername = "localhost";
 $username = "username"; $username = "username";
 $password = "password"; $password = "password";
 // Create connection // Create connection
 $conn = new mysqli($servername, $conn = mysqli_connect($servername, 
 $username, $password); $username, $password);
 // Check connection // Check connection
 if ($conn->connect_error) { if (!$conn) {
 die("Connection failed: " . $conn->connect_error); die("Connection failed: " . mysqli_connect_error());
 } }
 echo "Connected successfully"; echo "Connected successfully";
 ?> ?>
 16
 Open a Connection to MySQL
PDO
<?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();
}
?>
 17
 Close the Connection
− The connection will be closed automatically when the 
 script ends. To close the connection before, use the 
 following:
 ▪ Example (MySQLi Object-Oriented)
 • $conn->close();
 ▪ Example (MySQLi Procedural)
 • mysqli_close($conn);
 ▪ Example (PDO)
 • $conn = null;
 18
MySQL & Font Unicode
 Encode
 Decode
 19
 Insert (MySQLi Procedural)
<?php
$servernamePHP = & "localhost" MySQL;
$username = "root";
$password = "";
$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
 die("Connection failed: " . mysqli_connect_error());
}
// Change character set to utf8
mysqli_set_charset($conn,"utf8");
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";
if (mysqli_query($conn, $sql)) {
 $last_id = mysqli_insert_id($conn);
 echo "New record created successfully. Last inserted ID is: " . $last_id;
} else {
 echo "Error: " . $sql . "" . mysqli_error($conn);
}
mysqli_close($conn); 20
?>
 Insert (MySQLi Object-oriented)
<?php
$servername PHP= "localhost" &; MySQL
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
 die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";
if ($conn->query($sql) === TRUE) {
 $last_id = $conn->insert_id;
 echo "New record created successfully. Last inserted ID is: " . $last_id;
} else {
 echo "Error: " . $sql . "" . $conn->error;
}
$conn->close();
?> 21
 Insert (PDO)
<?php
$servername PHP= "localhost" &; MySQL
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
 $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, 
$password);
 // set the PDO error mode to exception
 $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 $sql = "INSERT INTO MyGuests (firstname, lastname, email)
 VALUES ('John', 'Doe', 'john@example.com')";
 // use exec() because no results are returned
 $conn->exec($sql);
 $last_id = $conn->lastInsertId();
 echo "New record created successfully. Last inserted ID is: " . $last_id;
}catch(PDOException $e){
 echo $sql . "" . $e->getMessage();
}
$conn = null;
?> 22
 Select Data With MySQLi (MySQLi Procedural)
<?php
$servername PHP= "localhost" &; MySQL
$username = "username"; //root
$password = "password"; //
$dbname = "myDB";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
 die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
 // output data of each row
 while($row = mysqli_fetch_assoc($result)) {
 echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "";
 }
} else {
 echo "0 results";
}
mysqli_close($conn); 23
?>
 Select Data With MySQLi (MySQLi Object-oriented)
<?php
$servername PHP= "localhost" &; MySQL
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
 die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
 // output data of each row
 while($row = $result->fetch_assoc()) {
 echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "";
 }
} else {
 echo "0 results";
}
$conn->close(); 24
?>
 Select Data With MySQLi (MySQLi Object-oriented): HTML table
<?php
$servername PHP= "localhost" &; MySQL
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); }
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
 echo "IDName";
 // output data of each row
 while($row = $result->fetch_assoc()) {
 echo "".$row["id"]."".$row["firstname"]." ".$row["lastname"]."";
 }
 echo "";
} else {
 echo "0 results";
}
$conn->close();
 25
?>
 PHP Delete Data From MySQL (MySQLi Procedural)
<?php
$servername PHP= "localhost" &; MySQL
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
 die("Connection failed: " . mysqli_connect_error());
}
// sql to delete a record
$sql = "DELETE FROM MyGuests WHERE id=3";
if (mysqli_query($conn, $sql)) {
 echo "Record deleted successfully";
} else {
 echo "Error deleting record: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
 26
 PHP Delete Data From MySQL (MySQLi Object-oriented)
<?php
$servername PHP= "localhost" &; MySQL
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
 die("Connection failed: " . $conn->connect_error);
}
// sql to delete a record
$sql = "DELETE FROM MyGuests WHERE id=3";
if ($conn->query($sql) === TRUE) {
 echo "Record deleted successfully";
} else {
 echo "Error deleting record: " . $conn->error;
}
$conn->close();
?>
 27
 PHP Update Data in MySQL (MySQLi Procedural)
<?php
$servername PHP= "localhost" &; MySQL
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
 die("Connection failed: " . mysqli_connect_error());
}
$sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";
if (mysqli_query($conn, $sql)) {
 echo "Record updated successfully";
} else {
 echo "Error updating record: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
 28
 PHP Update Data in MySQL (MySQLi Object-oriented)
<?php
$servername PHP= "localhost" &; MySQL
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
 die("Connection failed: " . $conn->connect_error);
}
$sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";
if ($conn->query($sql) === TRUE) {
 echo "Record updated successfully";
} else {
 echo "Error updating record: " . $conn->error;
}
$conn->close();
?>
 29
 PHP Update Data in MySQL (PDO)
<?php
$servername PHP= "localhost" &; MySQL
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
 $conn = new PDO("mysql:host=$servername;dbname=$dbname", 
$username, $password);
 // set the PDO error mode to exception
 $conn->setAttribute(PDO::ATTR_ERRMODE, 
PDO::ERRMODE_EXCEPTION);
 $sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";
 // Prepare statement
 $stmt = $conn->prepare($sql);
 // execute the query
 $stmt->execute();
 // echo a message to say the UPDATE succeeded
 echo $stmt->rowCount() . " records UPDATED successfully";
} catch(PDOException $e) { echo $sql . "" . $e->getMessage(); }
$conn = null;
?> 30
 Ví dụ
- Tạo 3 file: dbcon.php: chứa kết nối CSDL
- add-myguest.php: giao diện nhập liệu
- process-add-myguest.php: code xử lý thêm dữ liệu đã nhập
 dbcon.php
 <?php
 $servername = "localhost";
 $username = "root";
 $password = "";
 $dbname = "myDB";
 $conn = mysqli_connect($servername, $username, $password, $dbname);
 if (!$conn) {
 die("Connection failed: " . mysqli_connect_error());
 }
 mysqli_set_charset($conn,"utf8");
 ?>
 31
add-myguest.php
 Họ: 
 Tên: 
 Email: 
 32
processPHP-add -&myguest.php MySQL
 <?php
 require 'dbcon.php';
 $lastname = $_POST["lastname"];
 $firstname = $_POST["firstname"];
 $email = $_POST["email"];
 $sql = "INSERT INTO MyGuests (firstname, lastname, email)
 VALUES ('$lastname', '$firstname', '$email')";
 if (mysqli_query($conn, $sql)) {
 echo "Success";
 } else {
 echo "Fail";
 }
 mysqli_close($conn);
 ?> 33
 PHP & MySQL
Dữ liệu mẫu đã thêm vào table MyGuests
 34
− Tạo database:PHP & TinTucOnline, MySQL có diagram như hình:
 35

File đính kèm:

  • pdfbai_giang_phat_trien_ung_dung_web_bai_3_php_database_nguyen.pdf