Đ i H c Sư Ph m Tp. H Chí Minh
LẬP TRÌNH WEB PHP
Chương 04: K t n i PHP v i MySQL
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)
char(length)
t i đa 255 ký t , chi u dài c đ nh = length
varchar(length)
varchar(length)
t i đa 255 ký t , chi u dài đ ng <= length
text
t i đa 65536 ký t
int(length)
int(length)
-2.147.483.648 đ n +2.147.483.647
decimal(length,dec)
decimal(length,dec)
t i đa length ch s trong đó dec ch s
th p phân
3
1. Các ki u d li u thông d ng trong
MySQL
Ki u
Mô t
enum(“option1”,
enum(“option1”,
“option2”,…)
t p h p t đ nh, nghĩa t i đa 65.535 giá tr
date
yyyy-mmyyyy-mm-dd
time
hh:mm:ss
datetime
yyyy-mmyyyy-mm-dd hh:mm:ss
4
2. Các l nh thông d ng trong MySQL
Ki u
Mô t
CREATE
t o CSDL ho c b ng
ALTER
thay đ i b ng có s n
SELECT
ch n d li u t b ng
DELETE
xóa d li u kh i b ng
DESCRIBE
xem thơng tin mô t v c u trúc b ng
INSERT INTO
ghi giá tr vào b ng
UPDATE
c p nh t d li u đã có trong b ng
DROP
xóa b ng hay tồ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 ...
procedurename( [parameters]
END;
CREATE TABLE tablename
(
column datatype [NULL|NOT NULL]
column datatype [NULL|NOT NULL]
...
);
[CONSTRAINTS],
[CONSTRAINTS],
CREATE USER username[@hostname] [IDENTIFIED BY
username[@hostname]
[PASSWORD] '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, ...
columnname,
FROM tablename, ...
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,
VALUES(values, ...);
INSERT INTO tablename VALUES(value1,
VALUES(value1,
value2, …, valuen);
VD:
INSERT INTO ketqua (mamon, diem) VALUES
(‘LTWEB’, 10);
INSERT INTO ketqua VALUES(‘’, ‘K29.103.010’,
VALUES(‘’,
‘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
[- hostname] [- portnumber]
mysql [-h hostname] [-P portnumber] --user=user ---user=user
password=pass
password=pass
Nh p l nh sau d u nh c l nh mysql>
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
Thư vi n chu n
Thư vi n c i ti n
mysql
mysqli
S d ng hàm
mysql
S d ng l p
mysqli
S d ng hàm
mysqli
mysqli_stmt
mysqli_result
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ã
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 nd p
Đóng k t n i
17
Bư c 1: M k t n i đ n CSDL
// OOP mysqli
mysqli('hostname', 'username',
$mysqli = new mysqli('hostname', 'username',
'password', 'dbname');
password', 'dbname');
// mysqli
$link = mysqli_connect('hostname',
mysqli_connect('hostname',
'username', 'password', 'dbname');
username', 'password', 'dbname');
18
Bư c 2: Ch n CSDL
// OOP mysqli
$mysqli->select_db('dbname');
$mysqli->select_db('dbname');
// mysqli
mysqli_select_db($link,
mysqli_select_db($link, 'dbname');
19
Bư c 3: Ch n b ng mã (n u c n)
// OOP mysqli
mysqli->query($link,
mysqli->query($link, "SET NAMES ‘character set’")
‘character set’")
// mysqli
mysqli_query($link,
mysqli_query($link, "SET NAMES ‘character set’")
‘character set’")
VD: SET NAMES UTF8
20
Bư c 4: X
•
lý CSDL
Truy v n
// OOP mysqli
$result = mysqli->query(“query")
mysqli->query(“query")
// mysqli
$result = mysqli_query($link, “query")
mysqli_query($link,
21
Bư c 4: X
•
L y d li u t
lý CSDL (tt)
truy v n
// OOP mysqli
$row = $result->fetch_row()
$result$row = $result->fetch_assoc()
$result$row = $result->fetch_array(result_type)
$result->fetch_array(result_type)
// mysqli
$row = mysqli_fetch_row($result)
mysqli_fetch_row($result)
$row = mysqli_fetch_assoc($result)
mysqli_fetch_assoc($result)
$row = mysqli_fetch_array($result, result_type)
mysqli_fetch_array($result, result_type)
22
Bư c 5: D n d p
// OOP mysqli
$result->close()
$result->close()
// mysqli
mysqli_free_result($result)
mysqli_free_result($result)
23
Bư c 6: Đóng k t n i
// OOP mysqli
$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