2.8.1. Gi i thi u MySQL:
MySQL là h th ng c s d li u quan h . Ý ngh a c b n c a MySQL là có th l u tr các thông tin trên nh ng vùng khác nhau và liên k t chúng l i v i nhau.
MySQL cho phép t o nh ng thông tin riêng l trên b ng ho c nh ng khu v c ch a
thông tin thích h p. Trong MySQL m i b ng bao g m nh ng tr ng d li u (field)
riêng l .
PHP h tr m t s l ng l n các hàm làm vi c v i các c s d li u nh : MySQL,
Oracle, SQL Server, v.v…Thông qua chu n ODBC (Open Database Connectivity), b ng cách s d ng các hàm API (Application Programming Interface) mà PHP có th làm vi c v i nhi u h qu n tr c s d li u nh v y.
2.8.2. Các hàm c b n làm vi c v i c s d li u MySQL
• Các hàm k t n i đ n MySQL Server:
PHP cung c p hai hàm k t n i đ n c s d li u MySQL là: mysql_connect() và
mysql_pconnect().
1. Mysql_connect():
- Hàm này s t o ra m t liên k t t i máy ch MySQL.
- Cú pháp: int mysql_connect(string[hostname[:port][:/path_to_socket]], string[username], string[password]);
- Hostname: Tên máy ch c s d li u, n i trang web ch a c s d li u,
giá tr ng m đnh là “localhost”.
- Port: a ch c ng n i c s d li u l ng nghe yêu c u, giá tr ng m đnh là “3306”.
- Password: M t kh u c a ng i dùng đ c phép k t n i vào c s d li u. - Hàm này tr v k t qu là 1 n u k t n i thành công, và 0 n u vi c k t n i
có l i. Vi c k t n i này s k t thúc khi g i hàm mysql_close() ho c khi k t thúc đo n script PHP.
2. Mysql_pconnect():
- Hàm s t o ra m t liên k t b n v ng t i máy ch MySQL.
- Cú pháp: int mysql_pconnect(string[hostname[:port][:/path_to_socket]], string[username], string[password]);
- Tham s và tr tr v c a hàm này c ng gi ng nh hàm mysql_connect(),
nh ng s khác bi t c a hàm mysql_pconnect() là s không b đóng l i khi g i hàm mysql_close() ho c khi k t thúc đo n script PHP.
- M c đích c a vi c này là luôn luôn duy trì k t n i đ n máy ch MySQL
do luôn luôn có s yêu c u t i máy ch .
• Các hàm thao tác trên c s d li u MySQL:
1. Mysql_create_db():
- Hàm mysql_create_db() dùng đ t o m t c s d li u.
- Cú pháp: int mysql_create_db(string tencosodulieutao, int [masonhandang]);
- Mã s nh n d ng đ c c p b i hàm mysql_connect().
2. Mysql_drop_db():
- Hàm mysql_drop_db() dùng đ xóa m t c s d li u đã đ c kh i t o. - Cú pháp: int mysql_drop_db(string tencosodulieuxoa, int [masonhandang]);
3. Mysql_select_db():
- Hàm mysql_select_db() dùng cho c s d li u ho t đ ng.
- Cú pháp: int mysql_select_db(string tendatabse, int [masonhandang]);
4. Mysql_query():
- Hàm mysql_query() g i câu l nh sql t i máy ch MySQL.
- Cú pháp: int mysql_query(string query, [int masonhandang]);
- String query là câu l nh sql c n g i đ n máy ch MySQL. Mã s nh n
d ng đ c th c hi n trong hàm mysql_select_db().
5. Mysql_fetch_row():
- Hàm mysql_fetch_row() tr v 1 m ng giá tr c a 1 b ng ghi hi n t i. V i ch s là s th t các tr ng (b t đ u t 0).
- Sau đó hàm s tr t i b ng ghi ti p theo cho t i khi g p b ng ghi cu i cùng hàm s tr v giá tr là false.
- Cú pháp: array mysql_fetch_row(int masotrave);
- Mã s tr v c a hàm mysql_query().
- Sau đây là ví d v k t n i CSDL t server localhost v i username = “root”, password = “vertrigo” và s d ng hàm mysql_fetch_row() đ truy xu t các giá tr t b ng khách hàng c a CSDL máy tính. <?php $SERVER = "localhost"; $USERNAME = "root"; $PASSWORD = "vertrigo"; $DATABASE = "maytinh";
$conn = mysql_connect($SERVER, $USERNAME, $PASSWORD) or die ("Không th k t n i csdl");
mysql_select_db($DATABASE, $conn); //$conn mã s nh n d ng. $sql_skh = "select makh, tenkh from khachhang";
$query_skh = mysql_query($sql_skh) or die (mysql_error()); while($row_skh = mysql_fetch_row ($query_skh)){
echo $row_skh[0]; echo $row_skh[1]; }
?>
6. Mysql_fetch_array():
- Hàm mysql_fetch_array() tr v 1 m ng là giá tr c a 1 b ng ghi hi n t i. Sau đó hàm s tr t i b ng ghi ti p theo cho t i khi g p b ng ghi cu i cùng hàm s tr v giá tr là false.
- Cú pháp: array mysql_fetch_array(int masotrave);
- truy xu t các thành ph n c a c t: tên_m ng[“tên tr ng”].
<?php …..
while($row_skh = mysql_fetch_row ($query_skh)){ echo $row_skh["MaKH"]; echo $row_skh["TenKH "]; } ?> 7. Mysql_num_rows(): - Hàm mysql_num_row() dùng đ tr v s dòng d li u trong mã s tr v c a hàm mysql_query().
- Cú pháp: int mysql_num_rows(int masotrave);
- Ví d v ki m tra m t mã khách hàng đã t n t i trong c s d li u hay
ch a b ng cách l y k t qu tr v t hàm mysql_num_rows(). <?php
…..
$sql_skh = "select * from khachhang where makh = 'ABC' "; $query_skh = mysql_query($sql_skh) or die (mysql_error()); if(mysql_num_rows($sql_skh) == 0) echo "Ch a có khách hàng ABC "; else echo " ã có khách hàng ABC"; ?> 2.9. Session và Cookie: 2.9.1. Session:
HTTP là giao th c không đ c xây d ng đ có th l u gi đ c tr ng thái gi a 2
l n giao d ch. Khi m t ng i dùng yêu c u truy c p m t trang web, r i sau đó ng i
dùng yêu c u m t trang web khác thì HTTP không th bi t r ng đây là yêu c u t m t ng i dùng. Do đó ý t ng c a vi c đi u khi n phiên làm vi c (session) là có th l u v t c a m t ng i dùng trong su t m t phiên làm vi c.
Session trong PHP đ c đi u khi n b i m t giá tr ID duy nh t đ c g i là
“sessionID”, giá tr này s đ c t đ ng sinh ra và mã hóa, sessionID đ c sinh ra b i PHP và đ c l u tr phía client tron su t m t phiên giao d ch.
M t session đ c b t đ u khi ng i dùng truy c p vào ng d ng l n đ u tiên và k t
thúc khi ng i dùng thoát kh i ng d ng.
• Thi t l p session:
S d ng cú pháp: session_start().
Và ph i đ ng kí m t tên cho session: session_register(“name”).
• S d ng session:
S d ng cú pháp: $_SESSION[“name”], v i “name” là tên đã đ c đ ng kí
trong hàm session_register(“name”). Ví d :
session_start();
session_register(“name”); $_SESSION[“name”] = “Thien”; ?>
• H y session:
Session_destroy() đ h y toàn b session đã đ c đ ng kí.
Session_unset() đ h y toàn b giá tr c a session đã đ c đ ng kí.
2.9.2. Cookie:
Cookie là nh ng m u tin nh mà website có th ch a trên các máy client. Nó đ c
trình duy t g i ng c lên server m i khi trình duy t t i m t trang web t server.
Nh ng thông tin đ c l u trong cookie hoàn toàn ph thu c vào t ng website đ c
l u trên server, m i website có th l u tr nh ng thông tin khác nhau trên cookie. Khi trình duy t k t n i t i m t đa ch nào đó, tr c tiên nó ki m tra các cookie đã đ c l u tr trong máy. N u có b t kì cookie nào liên quan đ n đa ch v a đ c k t n i thì chúng s đ c chuy n tr l i cho server.
• Thi t l p cookie:
S d ng cú pháp: setcookie(“tên cookie”, “giá tr ”, “th i gian s ng”) Tên cookie: Là tên đ c đ t cho phiên làm vi c.
Giá tr : Là giá tr c a tên cookie. Ví d :
setcookie(“username”, “user”, “time() + 3600);
Cookie ph i đ c đ t trên m i giá tr k c th HTML.
• S d ng cookie:
s d ng l i cookie v a thi t l p s d ng cú pháp $_COOKIE[“tên cookie”], v i “tên cookie” là tên cookie đã đ c set trong hàm setcookie().
Ví d :
setcookie(“name”, “Thien”, time() + 3600); echo $_COOKIE[“name”];
S d ng m t trong hai cú pháp sau: Setcookie(“tên cookie”);
Setcookie(“tên cookie”, “giá tr ”, “th i đi m trong quá kh ”), dùng th i gian s ng c a cookie là th i đi m trong quá kh .
Ví d :
CH NG 3: PHÂN TÍCH H TH NG.
3.1. Phân tích yêu c u.