Tạo kết nối đến database serverLựa chọn CSDLXây dựng truy vấn và thực hiện truy vấnXử lý kết quả trả vềĐóng kết nối đến serverHàm trả về mã số nhận dạng (link_identifier) nếu kết nối nếu thành công, ngược lại trả về FALSE cùng thông tin lỗi nếu kết nối thất bại. Có thể thêm kí tự trước tên hàm nếu không muốn hiện thị thông báo lỗi.
Trang 2• Kết nối với cơ sở dữ liệu MySQL
• Một số hàm làm việc với csdl trong PHP
Trang 31 Tạo kết nối đến database server
2 Lựa chọn CSDL
3 Xây dựng truy vấn và thực hiện truy vấn
4 Xử lý kết quả trả về
5 Đóng kết nối đến server
Trang 4• Để tạo kết nối tới cơ sở dữ liệu ta sử dụng hàm mysql_connect() theo cú pháp:
Tham số Mô tả
server Tham số tùy chọn Chỉ ra server csdl muốn kết nối đến Giá trị mặc định
là cho tham số này là ‘localhost:3306’
user Tham số tùy chọn Chỉ ra username để log vào csdl Giá trị mặc định
username của serverpwd Tham số tùy chọn Chỉ ra password để log vào csdl Giá trị mặc định là ‘’
Trang 5• Ví dụ: Kết nối tới máy chủ localhost bằng tài khoản root không có mật khẩu
<?php
$conn = mysql_connect("localhost","root","");
if (!$conn) {
die('Could not connect: ' mysql_error()); }
echo “Kết nối thành công";
?>
Trang 6• Sau khi kết nối thành công ta có thể sử dụng hàm
mysql_select_db để mở cơ sở dữ liệu cần làm việc có trong
mysql Cú pháp
Tham số Mô tả
database_name Chỉ ra tên csdl cần làm việc
link_identifier Tham số tùy chọn Chỉ ra mã số nhận dạng kết nối được cấp bởi
hàm mysql_connect() Nếu không chỉ ra, mã số nhận dạng kết nối sau cùng được sử dụng
int mysql_select_db( database_name ,[ link_identifier ])
Hàm trả về TRUE nếu thành công, ngược lại trả về FALSE thất bại
Trang 7mysql_query("SET NAMES 'utf8' ");
Dòng lệnh này thường dùng sau khi đã kết nối với
csdl Mục đích là để thiết lập charset=utf-8 cho toàn
bộ trang web
Trang 8• DDL, DML và DCL là các ngôn ngữ cung cấp các câu lệnh thao tác
với csdl MySQL Dùng hàm mysql_query() để gửi các câu lệnh này cho MySQL thực thi.
• Cú pháp
Tham số Mô tả
query Là chuỗi lệnh truy vấn (nên kết thúc chuỗi với dấu ;)
link_identifier Tham số tùy chọn Chỉ ra mã số nhận dạng kết nối được cấp bởi hàm
mysql_connect() Nếu không chỉ ra thì mã số nhận dạng kết nối sau cùng được sử dụng
int mysql_query(query,[link_identifier]) ;
Hàm trả về TRUE nếu thành công, ngược lại trả về FALSE thất bại Với câu
query là SELECT hàm trả về tập các dòng dữ liệu
Trang 9• Ví dụ: Một số lệnh truy vấn có thể thực hiện bởi hàm mysql_query()
Trang 10• Ví dụ: Lấy dữ liệu bảng sinh_vien
<?php
$con = mysql_connect("localhost","root","");
if (!$con) {
die('Could not connect: ' mysql_error()); }
Trang 11•MYSQL_ASSOC – Trả về mảng chứa các chỉ số là chuỗi
•MYSQL_NUM - Trả về mảng chứa các chỉ số là số
•MYSQL_BOTH – là giá trị mặc định, mảng trả về gồm hai mảng trên
Hàm được dùng để lấy một dòng dữ liệu trong kết quả được trả về từ hàm
mysql_query()
Nếu thực hiện thành công, hàm trả về một mảng ứng với một dòng dữ liệu trong data
pointer Ngược lại, trả về FALSE nếu thất hoặc không có dòng dữ liệu nào để lấy
Trang 12• Hàm mysql_fetch_array() (tiếp )
– Lưu ý:
• Sau khi một dòng dữ liệu được lấy, hàm di chuyển đến dòng tiếp theo.
• Tên cột có phân biệt chữ hoa chữ thường– Ví dụ
Trang 13• Các kết nối sẽ tự động ngắt khi tiến trình thực thi code kết thúc Tuy nhiên ta có thể sử dụng phương thức mysql_close() để ngắt kết nối:
<?php
$conn = mysql_connect("localhost",“root","");
if (!$conn) {
die('Could not connect: ' mysql_error());
}
?>
Trang 14 Hàm được dùng để di chuyển con trỏ đến dòng cần làm việc bên trong data Hàm trả về True nếu thành công, False
nếu thất bại
Ví dụ: Di chuyển đến dòng thứ 4 (có vị trí là 3)
<?php mysql_data_seek($result,3)) ?>
Trang 15Tham số Mô tả
link_identifier Tham số tùy chọn Chỉ ra mã số nhận dạng kết nối được cấp bởi hàm
mysql_connect() Nếu không chỉ ra thì mã số nhận dạng kết nối sau cùng được sử dụng
• Hàm mysql_insert_id(data,row)
int mysql_insert_id([link_identifier]);
Hàm được dùng để lấy giá trị id được sinh ra trong cột
AUTO_INCREMENT do vừa thực hiện câu lệnh INSERT trước đó Hàm trả về 0 nếu câu truy vấn trước đó không sinh ra id
Ví dụ:
<?php $id = mysql_insert_id($conn) ?>
Trang 17• Hàm mysql_affected_rows() trả về số dòng bị tác động bởi các truy
vấn INSERT, UPDATE, DELETE
int mysql_affected_rows(link_identifier);
Tham số Mô tả
link_identifier Tham số tùy chọn Chỉ ra mã số nhận dạng kết nối được cấp bởi hàm
mysql_connect() Nếu không chỉ ra thì mã số nhận dạng kết nối sau cùng được sử dụng
Có thể dùng hàm mysql_effected_rows() để lấy số dòng dữ liệu bị
tác động bởi lệnh truy vấn insert | update | delete (được thực hiện bằng
hàm mysql_query())
Hàm trả về -1 nếu hành động bị thất bại ngược lại trả về số dòng bị tác
động nếu hành động thực hiện thành công
Trang 19• Hàm mysql_errorno()
int mysql_errorno([link_identifier]);
Tham số Mô tả
link_identifier Tham số tùy chọn Chỉ ra mã số nhận dạng kết nối được cấp bởi hàm
mysql_connect() Nếu không chỉ ra, mã số nhận dạng kết nối sau cùng được sử dụng
Hàm trả về mã lỗi do các hàm thao tác với csdl MySQL trước đó gây ra Ngược lại trả về 0 nếu không có lỗi
Trang 20• Hàm mysql_error()
string mysql_error(link_identifier);
Tham số Mô tả
link_identifier Tham số tùy chọn Chỉ ra mã số nhận dạng kết nối được cấp bởi hàm
mysql_connect() Nếu không chỉ ra, mã số nhận dạng kết nối sau cùng được sử dụng
Hàm trả về chuỗi thông báo lỗi do các hàm thao tác với csdl trước đó gây
ra Ngược lại trả về chuỗi rỗng nếu không có lỗi
Trang 21• Hàm mysql_real_escape_string()
string mysql_real_escape_string(string, [link_identifier])
Tham số Mô tả
string Là một chuỗi chưa được xử lý kí tự thoát
link_identifier Tham số tùy chọn Chỉ ra mã số nhận dạng kết nối được cấp bởi hàm
mysql_connect() Nếu không chỉ ra, mã số nhận dạng kết nối sau cùng được sử dụng
Hàm được dùng để thêm các kí tự thoát (\) cho các kí tự đặc biệt trong chuỗi câu lệnh SQL