Bài 16: Các thaoc k t n i t i MySQL l a ch n CSDLế
b ng PHP
Bài vi t này s t p trung vào vi c khai thác h qu n tr CSDL mi n phí MySQL.ế
T i sao l i s d ng MySQL?
MySQL là m t ph n m m qu n tr CSDL mã ngu n m , n m trong nhóm LAMP
(Linux - Apache -MySQL - PHP). "Liên minh" mã m này đang đ c coi là m t đ i ượ
tr ng v i các s n ph m mã đóng "đ t vãi..." (vãi gì thì tôi không bi t ế ) c a Microsoft
(Windows, IIS, SQL Server, ASP/ASP.NET).
M t s đ c đi m c a MySQL
MySQL là m t ph n m m qu n tr CSDL d ng server-based (g n t ng đ ng v i ươ ươ
SQL Server c a Microsoft).
MySQL qu n lý d li u thông qua các CSDL, m i CSDL có th có nhi u b ng quan
h ch a d li u.
MySQL có c ch phân quy n ng i s d ng riêng, m i ng i dùng có th đ cơ ế ườ ườ ượ
qu n lý m t ho c nhi u CSDL khác nhau, m i ng i dùng có m t tên truy c p (user ườ
name) và m t kh u t ng ng đ truy xu t đ n CSDL. ươ ế
Khi ta truy v n t i CSDL MySQL, ta ph i cung c p tên truy c p và m t kh u c a tài
kh an có quy n s d ng CSDL đó. N u không, chúng ta s không làm đ c gì c . ế ượ
Các b c xây d ng ch ng trình có k t n i t i CSDL:ướ ươ ế
Thông th ng, trong m t ng d ng có giao ti p v i CSDL, ta ph i làm theo b n trìnhườ ế
t sau:
B c 1: Thi t l p k t n i t i CSDL.ướ ế ế
B c 2: L a ch n CSDL.ướ
B c 3: Ti n hành các truy v n SQL, x lý các k t qu tr v n u cóướ ế ế ế
B c 4: Đóng k t n i t i CSDL.ướ ế
N u nh trong l p trình thông th ng trên Windows s d ng các ch ng trình đi uế ư ườ ươ
khi n trung gian (ADO, ODBC...) đ th c hi n k t n i và truy v n, thì trong PHP, khi ế
l p trình t ng tác v i CSDL, chúng ta th ng s d ng thông qua các hàm. ươ ườ
Chú ý: Tr c khi s d ng PHP đ l p trình v i MySQL, hãy s d ng ch ng trìnhướ ươ
qu n lý phpMyAdmin đ t o tr c m t CSDL, vài b ng cũng nh ng i dùng... đ ướ ư ườ
ti n th c hành. Bài h ng d n s d ng phpMyAdmin s đ c trình bày sau. ướ ượ
Trong bài vi t này, tôi s d ng MySQL ch y trên n n máy ch localhost, ng i sế ườ
d ng c a CSDL này có username là mysql_user, m t kh u là mysql_password
Thi t l p kêt n i t i MySQL.ế
Đ k t n i t i MySQL, ta s d ng hàm mysql_connect() ế
Cú pháp:
PHP Code:
mysql_connect(host,tên_truy_c p,m t_kh u );
trong đó:
host là chu i ch a tên (ho c đ a ch IP) c a máy ch cài đ t MySQL.
tên_truy_c p là chu i ch a tên truy c p h p l c a CSDL c n k t n i ế
m t_kh u là chu i ch a m t kh u t ng ng v i tên truy c p ươ
Ví d :
PHP Code:
<?
mysql_connect ("localhost", "thu_mot_ti","thu_hai_ti");
?>
Khi k t n i t i MySQL thành công, hàm s tr v giá tr là m t s nguyên đ nh danhế
c a liên k t, ng c l i, hàm tr v giá tr false. ế ượ
Ta có th dùng hàm if đ ki m tra xem có k t n i đ c t i MySQL hay không: ế ượ
PHP Code:
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");
if (!$link)
{
echo "Không th k tế n i đ cượ t i CSDL MySQL";
}
?>
L a ch n CSDL
Đ l a ch n m t CSDL nào đó mà ng i s d ng có tên là tên_truy_c p" có quy n s ườ
d ng, ta dùng hàm mysql_select_db:
mysql_select_db (tên_CSDL);
Hàm này th ng đ c dùng sau khi thi t l p k t n i b ng hàm mysql_connect. Hàmườ ượ ế ế
này tr v true n u thành công, false n u th t b i. ế ế
VD:
PHP Code:
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");
if (!$link)
{
echo "Không th k tế n i đ cượ t i MySQL";
}
if (!mysql_select_db ("Forums"))
{
echo "Không th l a ch n đ cượ CSDL Forums";
}
?>
Đóng k t n i t i CSDL:ế
Đ đóng k t n i t i CSDL, ta dùng hàm mysql_close. ế
Hàm này có nhi m v đóng k t n i t i CSDL có mã đ nh danh đ c t o ra b i hàm ế ượ
mysql_connect().
Cú pháp:
PHP Code:
mysql_close(mã_đ nh_danh_k t_n i ế ).
Ví d :
PHP Code:
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");
if (!$link)
{
echo "Không th k tế n i đ cượ t i MySQL";
}
mysql_close($link);
?>