Kết nối PHP với MySQL
Ths. Lương Trần Hy Hiến, khoa CNTT, ĐH Sư phạm TpHCM
1
Nội dung
1.
2.
3.
4.
5.
Các kiểu dữ liệu cơ bản trong MySQL
Các lệnh thông dụng trong MySQL
Kết nối MySQL từ PHP
Quy trình kết nối vào MySQL
Các bước truy cập CSDL MySQL
2
1. Các kiểu dữ liệu cơ bản trong MySQL
Kiểu
Mô tả
char(length)
tối đa 255 ký tự, chiều dài cố định = length
varchar(length)
tối đa 255 ký tự, chiều dài động <= length
text
tối đa 65536 ký tự
int(length)
-2.147.483.648 đến +2.147.483.647
tối đa length chữ số trong đó dec chữ số
decimal(length,dec) thập phân
3
1. Các kiểu dữ liệu cơ bản trong MySQL
Kiểu
Mô tả
enum(“option1”, tập hợp tự định nghĩa, tối đa 65.535
giá trị
“option2”,…)
date
yyyy-mm-dd
time
hh:mm:ss
datetime
yyyy-mm-dd hh:mm:ss
4
2. Các lệnh thông dụng trong MySQL
Kiểu
Mô tả
CREATE
ALTER
SELECT
DELETE
DESCRIBE
INSERT INTO
UPDATE
DROP
tạo CSDL hoặc bảng
thay đổi bảng có sẵn
chọn dữ liệu từ bảng
xóa dữ liệu khỏi bảng
xem thông tin mô tả về cấu trúc bảng
ghi giá trị vào bảng
cập nhật dữ liệu đã có trong bảng
xóa bảng hay toàn bộ CSDL
5
2. Các lệnh thông dụng trong MySQL
CREATE INDEX indexname ON tablename (column [ASC|DESC], ...);
CREATE PROCEDURE procedurename( [parameters] ) BEGIN ... END;
CREATE TABLE tablename
(
column datatype [NULL|NOT NULL]
column datatype [NULL|NOT NULL]
...
);
[CONSTRAINTS],
[CONSTRAINTS],
CREATE USER username[@hostname] [IDENTIFIED BY [PASSWORD]
'password'];
CREATE [OR REPLACE] VIEW viewname AS SELECT ...;
6
2. Các lệnh thông dụng trong MySQL
ALTER TABLE tablename
(
ADD column datatype
[NULL|NOT NULL]
[CONSTRAINTS],
CHANGE column columns datatype [NULL|NOT
NULL] [CONSTRAINTS],
DROP column,
...
);
7
2. Các lệnh thông dụng trong MySQL
SELECT columnname, ...
FROM tablename, ...
[WHERE ...]
[UNION ...]
[GROUP BY ...]
[HAVING ...]
[ORDER BY ...];
VD: SELECT * FROM ketqua;
8
2. Các lệnh thông dụng trong MySQL
DELETE FROM tablename
[WHERE ...];
VD:
DELETE FROM ketqua WHERE MaSV =
‘K29.103.010’
9
2. Các lệnh thông dụng trong MySQL
INSERT INTO tablename [(columns, ...)]
VALUES(values, ...);
INSERT INTO tablename VALUES(value1, value2, …,
valuen);
VD:
INSERT INTO ketqua (mamon, diem) VALUES
(‘LTWEB’, 10);
INSERT INTO ketqua VALUES(‘’, ‘K29.103.010’,
‘LTWEB’, 10);
10
2. Các lệnh thông dụng trong MySQL
UPDATE tablename
SET columname = value, ...
[WHERE ...];
VD:
UPDATE ketqua SET diem = 10 WHERE MaSV =
‘K29.103.010’
11
2. Các lệnh thông dụng trong MySQL
DROP DATABASE | INDEX | PROCEDURE |
TABLE | TRIGGER | USER | VIEW itemname;
VD:
• Xóa bảng SINHVIEN: DROP TABLE SinhVien
• Xóa CSDL QLSV: DROP DATABASE QLSV;
12
Giao tiếp dòng lệnh
• Kết nối mysql server
mysql [-h hostname] [-P portnumber] -u username -p
mysql [-h hostname] [-P portnumber] --user=user -password=pass
Nhập lệnh sau dấu nhắc lệnh mysql>
Mỗi lệnh SQL kết thúc bằng dấu ;
13
Giao tiếp đồ họa
• Một số công cụ thông dụng
SQLyog Enterprise
phpMyAdmin
MySQL Query Browser
MySQL Maestros
Navicat
MySQL Manager
14
3. Kết nối MySQL từ PHP
PHP script
mysql
mysqli
Sử dụng hàm
Sử dụng lớp
mysql
mysqli
mysqli_stmt
mysqli_result
PDO
Sử dụng hàm
mysqli
15
Thư viện mysql cải tiến trong PHP5
• Thiết lập trong php.ini
extension=php_mysqli.dll
• Ưu điểm
–
–
–
–
Hỗ trợ lập trình hướng đối tượng
Hỗ trợ nhân bản và phân tán CSDL
Nén và mã hóa dữ liệu trên kết nối
Tối ưu hiệu năng và mã
• Nhược điểm
–
Chỉ làm việc với CSDL MySQL
16
4. Quy trình kết nối vào MySQL
1.
2.
3.
4.
5.
6.
Mở kết nối đến CSDL
Chọn CSDL
Chọn bảng mã (nếu cần)
Xử lý CSDL
Dọn dẹp
Đóng kết nối
17
Bước 1: Mở kết nối đến CSDL
// OOP mysqli
$mysqli = new mysqli('hostname',
'username', 'password', 'dbname');
// mysqli
$link = mysqli_connect('hostname',
'username', 'password', 'dbname');
18
Bước 2: Chọn CSDL
// OOP mysqli
$mysqli->select_db('dbname');
// mysqli
mysqli_select_db($link, 'dbname');
19
Bước 3: Chọn bảng mã (nếu cần)
// OOP mysqli
mysqli->query($link, "SET NAMES ‘character set’")
// mysqli
mysqli_query($link, "SET NAMES ‘character set’")
VD: SET NAMES UTF8
20
Bước 4: Xử lý CSDL
•
Truy vấn
// OOP mysqli
$result = mysqli->query(“query")
// mysqli
$result = mysqli_query($link, “query")
21
Bước 4: Xử lý CSDL (tt)
•
Lấy dữ liệu từ truy vấn
// OOP mysqli
$row = $result->fetch_row()
$row = $result->fetch_assoc()
$row = $result->fetch_array(result_type)
// mysqli
$row = mysqli_fetch_row($result)
$row = mysqli_fetch_assoc($result)
$row = mysqli_fetch_array($result, result_type)
22
Bước 5: Dọn dẹp
// OOP mysqli
$result->close()
// mysqli
mysqli_free_result($result)
23
Bước 6: Đóng kết nối
// OOP mysqli
$mysqli->close()
// mysqli
mysqli_close($link)
24
5. Các bước truy cập CSDL MySQL
1.
2.
3.
4.
5.
Tạo kết nối đến database server
Lựa chọn CSDL
Xây dựng truy vấn và thực hiện truy vấn
Xử lý kết quả trả về
Đóng kết nối đến server
25