Tải bản đầy đủ (.pdf) (35 trang)

Bài giảng Phát triển ứng dụng Web (GV Nguyễn Hữu Thể) Bài 3

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (868.43 KB, 35 trang )

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:
CREATE TABLE MyGuests (
id INT AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)

AUTO_INCREMENT :
tự động tăng giá trị
của field lên 1 mỗi khi
một record mới được
thêm vào.

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', ‘')
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

$servername = "localhost";
$username = "username";
$password = "password";

$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername,
$username, $password);

// Create connection
$conn = mysqli_connect($servername,
$username, $password);

// Check connection
if ($conn->connect_error) {

// Check connection
if (!$conn) {


die("Connection failed: " . $conn->connect_error);

}
echo "Connected successfully";
?>

die("Connection failed: " . mysqli_connect_error());

}
echo "Connected successfully";
?>
16


Open a Connection to MySQL
PDO
$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)

$servername

"localhost";
PHP=&
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', '')";
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 & MySQL

$servername = "localhost";
$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', '')";
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 & MySQL

$servername = "localhost";
$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', '')";
// 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 & MySQL

$servername = "localhost";
$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 & MySQL

$servername = "localhost";
$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

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

PHP & MySQL

$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 "<table><tr><th>ID</th><th>Name</th></tr>";
// output data of each row

while($row = $result->fetch_assoc()) {
echo "<tr><td>".$row["id"]."</td><td>".$row["firstname"]." ".$row["lastname"]."</td></tr>";
}
echo "</table>";
} else {
echo "0 results";
}
$conn->close();
25
?>



×