CHỦ ĐỀ TÌM HIỂU CHỦ ĐỀ TÌM HIỂU Using PHP with MySQL Outline Tổng quan lý thuyết Giới thiệu MySQL Đặc điểm MySQL Kết nối CSDL MySQL Thực hành Thêm dữ liệu Sửa dữ liệu Các hàm làm việc với MySQL Truy v[.]
Trang 1CHỦ ĐỀ TÌM HIỂU
Using PHP with MySQL
Trang 2Tổng quan lý
thuyết:
• Giới thiệu MySQL
• Đặc điểm MySQL
• Kết nối CSDL MySQL
• Các hàm làm việc với
MySQL
Thực hành:
• Thêm dữ liệu
• Sửa dữ liệu
• Xoá dữ liệu
• Truy vấn dữ liệu
• Demo đồ án thực tế
Trang 3Giới thiệu MySQL
• MySQL là một hệ quản trị cơ sở dữ liệu đa luồng mã nguồn mở tương tự như SQL Server, Oracle…
• Chuyên dụng cho mọi mức độ doanh nghiệp.
• MySQL được phát triển bởi một công ty tư vấn và phát triển ứng dụng của Thuỵ Điển có tên là TcX sau đổi tên thành MySQL AB.
• Hiện nay, MySQL đã được Oracle mua lại.
• MySQL được phát triển phổ biến cho hệ điều hành Linux, tuy nhiên, với các
phiên bản mới hiện nay, nó đã có thể sử dụng tốt trên của hệ điều hành Windows.
• MySQL có nhiều phiên bản phát hành : các cá nhân có thể được dùng miễn phí
tuy nhiên các doanh nghiệp thì cần phải trả phí mới được sử dụng.
Trang 4Đặc điểm MySQL
• Tốc độ truy xuất nhanh, ổn định, dễ sử dụng
• Có tính khả chuyển, hoạt động trên nhiều nền tảng HĐH
• Cung cấp hệ thống thư viện hàm lớn
• Khả năng bảo mật tốt
• Hoạt động như một hệ client/server hoặc trong hệ thống nhúng.
• Được hỗ trợ bởi nhiều ngôn ngữ lập lập trình
Trang 5Kết nối CSDL MySQL
• Để kết nối CSDL, ta có thể dùng nhiều cách để kết nối Chúng ta tìm hiểu cách kết nối CSDL MySQL bằng chính gói của PHP.
• Sử dụng 4 tham số để kết nối PHP với MySQL: hostname, username, password, dbname.
• Kết nối PHP với MySQL chia làm 3 bước như sau:
• Bước 1: Tạo kết nối
• Bước 2: Thực thi lệnh
• Bước 3: Đóng kết nối
Trang 6Kết nối CSDL MySQL
• Sử dụng hàm mysqli_connect() để kết nối với MySQL.
• Hàm này truyền vào 4 tham số: hostname, username,password, dbname.
• Cú pháp kết nối:
$conn = mysqli_connect(“servername”, “username”, “password”,”dbname”);
Trong đó:
• servername: Là tên server hoặc hostname
• user_name: Là tên truy cập vào MySQL
• password:Là mật khẩu của username truy vào MySQL
• dbname: Tên CSDL
Trang 7Kết nối CSDL MySQL
• Sau khi mở kết nối thì sử dụng hàm mysqli_close() để đóng kết nối
• Cú pháp:
mysqli_close ($conn);
• Ví dụ khai báo trang config.php kết nối với CSDL và đóng kết nối sau khi mở thành công
<?php
$servername = "localhost"; $username = “root“;$password = “ ";
$dbname = “demo";
$conn = mysqli_connect($servername,$username,$password,$dbname);
if(!$conn){
die('Kết nối thất bại:'.mysqli_connect_error());
}else{
echo"kết nối thành công";
} mysqli_close($conn);
?>
Trang 8Các hàm làm việc với MySQL
• Hàm mysqli_query() dùng để gửi một câu truy vấn MySQL Hàm này không hỗ trợ nhiều câu truy vấn.
Cú pháp:
mysqli_query(connection, query, resultmode);
Connection: chỉ định kết nối MySQL sử dụng
Query: chỉ định chuỗi truy vấn
Resultmode: chỉ định chế độ của kết quả trả về (MYSQLI_STORE_RESULT là mặc định,
còn nếu cần phải lấy số lượng lớn dữ liệu thì sử dụng MYSQLI_USE_RESULT)
Ví dụ: $sql = “select * from user”;
$data = mysqli_query ($conn, $ sql);
Trang 9Các hàm làm việc với MySQL
• Hàm mysqli_num_rows() lấy về số dòng của kết quả truy vấn.
Ví dụ:
<?php
$sql = "select * from user";
$rs = mysqli_query($conn, $sql);
$count = mysqli_num_rows($rs);
echo "Tổng số user hiện có là:".$count;
mysqli_close($conn);
?>
Trang 10Các hàm làm việc với MySQL
Hàm mysqli_fetch_row() sẽ trả về hàng hiện tại
của tập hợp các kết quả dưới dạng một mảng
liên tục.
mysqli_fetch_row( result );
result là kết quả của truy vấn, là kết quả trả
về của các hàm: mysqli_query(),
mysqli_store_result() hoặc
mysqli_use_result().
Hàm sẽ trả về một mảng liên tục đại diện cho
hàng hiện tại của tập hợp kết quả Trả về Null
nếu không có thêm kết quả được tìm thấy.
$sql = 'SELECT * FROM user';
$retval=mysqli_query($conn, $sql);
if(mysqli_num_rows($retval) > 0){ while($row =
mysqli_fetch_row($retval)){
echo "USER ID :{$row[0]} <br>
"
“USER NAME: {$row[1]} <br>
"
"USER SALARY : {$row[2]}
<br> "
" -<br>"; } //end of while
}
Trang 11Các hàm làm việc với MySQL
Hàm mysqli_fetch_array() tìm nạp một hàng kết quả dưới
dạng một mảng kết hợp, một mảng số hoặc cả hai.
mysqli_fetch_array(result, resulttype);
result: là một tập hợp kết quả trả về từ các hàm
mysqli_use_result()
resulttype: là tùy chọn Chỉ định loại mảng nào sẽ được trả
về Có thể là một trong những giá trị sau: MYSQLI_ASSOC,
Hàm mysqli_fecth_array trả về một mảng chuỗi tương ứng
với các lấy hàng Null nếu không có thêm hàng nào trong kết
quả trả về.
<?php
$sql = 'SELECT * FROM user';
$retval=mysqli_query($conn, $sql);
if(mysqli_num_rows($retval) > 0){
while($row = mysqli_fetch_array ($retval)){
echo "USER ID :{$row['id']} <br> "
"USER NAME : {$row['name']} <br> "
"USER SALARY : {$row['user_salary']} <br> " " -<br>";
} //end of while }else{
echo "0 results";
}
?>
Trang 12Các hàm làm việc với MySQL
Trang 13Thêm dữ liệu
• Để chèn dữ liệu vào trong CSDL, ta dùng hàm mysqli_query() để thực hiện câu lệnh Insert.
• Ví dụ: thêm thông tin nhãn hiệu vào bảng sinhvien như sau
Tạo file config.php để kết nối với CSDL
<?php
$host = "localhost";
$user = "root";
$pass = "";
$data = "phpcanban";
?>
Trang 14Thêm dữ liệu
Câu lệnh INSERT trong MySQL:
INSERT INTO <tên_bảng>(<danh_sách_cột>) VALUES(<dữ liệu>)
Để thêm dữ liệu sử dụng câu query INSERT Ví dụ
<?php
$con = mysqli_connect($host, $user, $pass, $data) or die("Ket noi khong thanh cong");
$result = mysqli_query($con, "insert into sinhvien values('SV01', ‘Nguyen Hoai Thuong')"); if($result){
echo "Them thanh cong";
}
else {
echo "Them that bai";
}
?>
Trang 15Sửa dữ liệu
Câu lệnh UPDATE trong MySQL:
UPDATE <tên_bảng> SET <tên_cột>=<giá_trị> WHERE <điều_kiện>
Để cập nhật dữ liệu sử dụng câu query UPDATE Ví dụ:
<?php
$con = mysqli_connect($host, $user, $pass, $data) or die("Ket noi khong thanh cong");
$result = mysqli_query($con, "update sinhvien set hoten='Nguyen Duy' where masv='SV001'"); if($result) {
echo “Sua thanh cong";
} else {
echo “Sua that bai";
}
?>
Trang 16Xóa dữ liệu
Câu lệnh DELETE trong MySQL:
DELETE FROM <tên bảng> WHERE <điều_kiện>
Để xóa dữ liệu sử dụng câu query DELETE Ví dụ:
<?php
$con = mysqli_connect($host, $user, $pass, $data) or die("Ket noi khong thanh cong");
$result = mysqli_query($con, "delete from sinhvien where masv = 'SV001'");
if($result) {
echo "Xoa thanh cong";
} else {
echo "Xoa that bai";
}
?>
Trang 17Truy vấn dữ liệu
trong cơ sở dữ liệu
<?php
$con = mysqli_connect($host, $user, $pass, $data) or die("Ket noi khong thanh cong");
$result = mysqli_query($con, "select * from lop");
if(mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo "Lop: " $row['malop'] " - " $row['tenlop'] "<br />";
}
} else {
echo "Không có dữ liệu";
}
?>
Trang 18DEMO