1. Trang chủ
  2. » Luận Văn - Báo Cáo

Kết nối CSDL với PHP

62 848 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 62
Dung lượng 551,47 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Kết nối CSDL với PHP NỘI DUNG TRÌNH BÀY KỸ THUẬT KẾT NỐI CSDL MYSQL TRONG PHP CÚ PHÁP INCLUDE TRONG PHP PHÂN TRANG TRONG PHP KẾT NỐI CSDL KHÁC Các bước truy cập CSDL MySQL 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 cơ sở dữ liệu

Trang 1

0512278 – Nguyễn Xuân Quyền

0512346 – Lê Thị Kim Thúy

Trang 2

NỘI DUNG TRÌNH BÀY

KỸ THUẬT KẾT NỐI CSDL MYSQL TRONG PHP

Trang 3

Kỹ thuật kết nối CSDL MySQL trong

PHP

Trang 4

Lê Văn Bình * / 62

Các bước truy cập CSDL MySQL

1.Tạo kết nối đến database server

Trang 5

Bước 1

$biến_kết_nối =

ật_khẩu”)

or die(“Không kết nối được”);

•Hàm die(“Chuỗi”): Đưa ra thông báo và kết thúc

•Với cách viết trên, die chỉ thực hiện khi lệnh trước nó không thành công

•Trả về FALSE nếu không kết nối không thành công

Trang 6

Lê Văn Bình * / 62

Bước 1 (tt)

Trang 7

Bước 2

mysql_select_db(“Tên CSDL”,$link)

or die (“Chưa có CSDL”);

•$link là biến tùy chọn,có giá trị là kết quả trả về

từ chuỗi kết nối ở bước 1

•Nếu thành công trả về TRUE,ngược lại là FALSE

Trang 8

Lê Văn Bình * / 62

Bước 2 (tt)

Trang 9

Bước 3

$biến = mysql_query(“Lệnh SQL”,$link) or die(“Không thực hiện được SQL”);

Trang 11

mysql_num_rows($rs): Số lượng bản ghi trong $rs

$r=mysql_fetch_array($rs): Trả 1 dòng của $rs vào

$r

Trang 12

Lê Văn Bình * / 62

Bước 5

• Đóng kết nối cơ sở dữ liệu

mysql_close($biến_kết_nối)

Trang 13

CÚ PHÁP INCLUDE TRONG PHP

Trang 14

Thái Hồng Phúc * / 62

include

• Mục đích: include() là 1 hàm gọi liên kết tới một file, nội dung file đó sẽ được chèn vào file đang gọi hàm include khi thực thi.

• Cú pháp:

[ gia_tri_tra_ve ] = include([ include_file ]);

• include thành công: gia_tri_tra_ve = 1;

• include không thành công: warning nhưng vẫn cho phép chương trình tiếp tục thực thi

Trang 15

• [ gia_tri_tra_ve ] = include([ include_file ]);

•File include có thể là bất kỳ dạng file nào(*.php /

*.html ).

•include_file có thể là địa chỉ tương đối/ URL/ đường dẫn tuyệt đối của file nằm trên server.

• Ý nghĩa:

Tạo 1 file php thư viện và include nó vào nhiều

trang Khi cần chỉnh sửa, chỉ cần thay đổi trong file thư viện.

Trang 16

Thái Hồng Phúc * / 62

CÁC HÀM LIÊN QUAN

• [ gia_tri_tra_ve ] = include ([ include_file ]);

•include thành công: gia_tri_tra_ve = 1;

•include không thành công: warning nhưng vẫn cho phép chương trình tiếp tục thực thi

[ gia_tri_tra_ve ] = require ([ include_file ]);

•include thành công: gia_tri_tra_ve = 1;

•include không thành công: thông báo lỗi và không tiếp tục thực thi chương trình.

•Nếu nhất thiết phải có file đó thì dùng require , còn không thì dùng include.

Trang 17

CÁC HÀM LIÊN QUAN

[gia_tri_tra_ve] = require_once([include_file]);

[gia_tri_tra_ve] = include_once([include_file]);

thay vì một lần

Trang 18

Thái Hồng Phúc * / 62

TÌM KIẾM INCLUDE_FILE

• Nếu có setup include_path, include_file sẽ được tìm kiếm đầu tiên trong các include_path, sau đó mới

tìm trong thư mục chứa tài liệu PHP hiện tại.<?php

//test.php nằm trong thư mục /www/

//include_path là /www/libraries/

include 'vars.php';?>

• vars.php được tìm trong /www/libraries/ Nếu không thấy, tìm vars.php trong /www/

Trang 19

$color = 'green';$fruit = 'apple';?>//test.php<?

phpecho "A $color $fruit"; //Ainclude 'vars.php';

echo "A $color $fruit"; //A green apple?>

Trang 20

Lê Thị Kim Thúy * / 62

Phân trang trong PHP

Trang 21

Phân trang trong PHP

• Giới thiệu.

• Nguyên tắc của việc phân trang.

• Ví dụ.

Trang 22

Lê Thị Kim Thúy * / 62

Giới thiệu

Giới thiệu:

 Khi có một truy vấn dữ liệu nhận về một danh sách kết quả quá dài, người ta thường phải phân trang ứng dụng cho phù hợp.

Nguyên tắc phân trang:

- Bước 1: Tính tóan số lượng bản ghi thỏa mãn điều kiện trả

về ( thường sử dụng hàm count trong câu lệnh SQL).

- Bước 2: Xác định số lượng bản ghi sẽ hiển thị trên một trang.

- Bước 3: Dựa trên các thông tin có được từ bước 1 và 2, xác định được số trang cần hiển thị.

- Bước 4: Tính tóan số lượng bản ghi sẽ hiển thị tính từ trang nào đó do NSD lựa chọn (Sử dụng câu lệnh LIMIT)

Trang 23

Ví dụ 1:

<?php //thuc hien ket noi co so du lieu

// how many rows to show per page

$rowsPerPage = 20; // by default we show first page

$pageNum = 1; // if $_GET['page'] defined, use it as page number

if(isset($_GET['page']))

{

$pageNum = $_GET['page'];

} // counting the offset

$offset = ($pageNum - 1) * $rowsPerPage;

$query = "SELECT val FROM randoms

LIMIT $offset, $rowsPerPage";

$result = mysql_query($query) or die('Error, query failed');

Trang 24

Lê Thị Kim Thúy * / 62

echo '<br>'; // how many rows we have in database

$query = "SELECT COUNT(val) AS numrows FROM randoms"

;

$result = mysql_query($query) or die('Error, query failed');

$row = mysql_fetch_array($result, MYSQL_ASSOC);

$numrows = $row['numrows']; // how many pages we have when using paging?

$maxPage = ceil($numrows/$rowsPerPage);

Trang 26

Lê Thị Kim Thúy * / 62

Ví dụ 1

………

// creating previous and next link

// plus the link to go straight to the first and last page if ($pageNum > 1)

$prev = '&nbsp;'; // we're on page one, don't print previous link

$first = '&nbsp;'; // nor the first page link

$next = '&nbsp;'; // we're on the last page, don't print next link

$last = '&nbsp;'; // nor the last page link

} // print the navigation link echo $first $prev $nav $next $last;

//đóng kết nối cơ sở dữ liệu

?>

Trang 27

Ví dụ 1: kết quả

Trang 28

Lê Thị Kim Thúy * / 62

Ví dụ 2:

<?php // thuc hien ket noi co so du lieu ….

// how many pages we have when using paging?

$maxPage = ceil($numrows/$rowsPerPage);

$self = $_SERVER['PHP_SELF'];// creating 'previous' and 'next' link // plus 'first page' and 'last page' link

// print 'previous' link only if we're not

on page oneif ($pageNum > 1)

Trang 29

Ví dụ 2:

// print 'next' link only if we're not

on the last pageif ($pageNum < $maxPage)

$last = ' [Last Page] '; // nor 'last page' link

}// print the page navigation linkecho $first $prev " Showing page

<strong>$pageNum</strong> of <strong>$maxPage</strong> page

s " $next $last;

//đóng kết nối cơ sở dữ liệu

?>

Trang 30

Lê Thị Kim Thúy * / 62

Ví dụ 2:

Trang 31

Ví dụ 3:

<?php //Thực hiện kết nổi cơ sở dữ liệu

// how many rows to show per page $rowsPerPage = 3; // by default we show first page $pageNum = 1; // if $_GET['page'] defined, use it as page number if( isset($_GET['page']))

{

$pageNum = $_GET['page'];

} // counting the offset $offset = ($pageNum - 1) * $rowsPerPage; $query =

“SELECT id, name, address, age, register_date

FROM student

LIMIT $offset, $rowsPerPage";

$result = mysql_query($query) or die('Error, query failed');

Trang 32

Lê Thị Kim Thúy * / 62

$result = mysql_query($query) or die('Error, query failed');

$row = mysql_fetch_array($result, MYSQL_ASSOC);

$numrows = $row['numrows']; // how many pages we have when using pagin g? $maxPage = ceil($numrows/$rowsPerPage);

$self = $_SERVER['PHP_SELF'];

Trang 33

Ví dụ 3

// creating 'previous' and 'next' link

// plus 'first page' and 'last page' link

// print 'previous' link only if we're not

// on page oneif ($pageNum > 1)

{

$page = $pageNum - 1;

$prev = " <a href=\"$self?page=$page\">[Prev]</a> ";

$first = " <a href=\"$self?page=1\">[First Page]</a> ";

Trang 34

Lê Thị Kim Thúy * / 62

Ví dụ 3

// print 'next' link only if we're not

// on the last page if ($pageNum < $maxPage)

{

$page = $pageNum + 1;

$next = " <a href=\"$self?page=$page\">[Next]</a> ";

$last = " <a href=\"$self?page=$maxPage\">[Last Page]</a> ";

} // print the page navigation link echo $first $prev " Showing page <strong

>$pageNum</strong> of <strong>$maxPage</strong> pages " $next $la st; //đóng kết nổi cơ sở dữ liệu ?>

Trang 35

Ví dụ 3

Trang 36

Nguyễn Xuân Quyền * / 62

Kết nối CSDL khác

Trang 38

Nguyễn Xuân Quyền * / 62

Kết nối CSDL khác

1.PHP và CSDL Oracle

Trang 40

Nguyễn Xuân Quyền * / 62

Example: user sở hửu table

OCIExecute: dùng thực thi câu lệnh SQL

Trang 41

//khai báo header của table hai cột ID và Name

print “<TABLE CELLSPACING=\ ”0 \ ””;

print “CELLPADDING =\ ”.3 \ “ BORDER=\ “1\ “>\n”;

print “<TR><TH>ID</TH><TH>Name</TH></TR>\n”;

Trang 42

Nguyễn Xuân Quyền * / 62

//đọc dữ liệu của cột EMPID

print “</TD>\n”;

print “<TD>”;

//đọc dữ liệu của cột NAME

print OCIResult($stmt, “NAME”);

Trang 43

PHP và CSDL Oracle

B4: Kiểm tra quyền người dùng

Để Authentication người dùng cơ sở dữ liệu Oracle, khai báo như sau:

echo “You are not unauthorised to enter the ”;

echo “site </blockquote> \n”;

exit;

}

Trang 44

Nguyễn Xuân Quyền * / 62

PHP và CSDL Oracle

else

{

if(!($conn=ora_logon(“$PHP_AUTH_USER@SID”, $PHP_AUTH_PW))) {

Header(“WWW-authenticate: basic realm=\ “$SID\ “”);

Header(“HTTP/1.0 401 Unauthorized”);

$title = “Login Instructions”;

echo “<blockquote> ”;

echo “You are not unauthorised to enter the ”;

echo “site </blockquote> \n”;

exit;

} }

?}

Trang 45

Kết nối CSDL khác

2 PHP và CSDL PostgreSQL

Trang 46

Nguyễn Xuân Quyền * / 62

Trang 47

//khai báo, thực thi

$query = “SELECT * FROM friends”;

$result = pg_exec($db, $query);

Trang 48

Nguyễn Xuân Quyền * / 62

Trang 49

//khai báo, thực thi

$query = “SELECT * FROM friends”;

$result = pg_exec($db, $query);

Trang 50

Nguyễn Xuân Quyền * / 62

Trang 51

$query = “UPDATE friends SET firstname =

‘$firstname’, surname = ‘$surname’ WHERE id = ‘$id’”;

?>

Trang 52

Nguyễn Xuân Quyền * / 62

PHP và CSDL PostgreSQL

Thay chuỗi query thành câu lệnh delete trong truy vấn SQL

Ví dụ:

<?php

$query = “DELETE friends SET firstname =

‘$firstname’, surname = ‘$surname’ WHERE id = ‘$id’”;

?>

Trang 53

Kết nối CSDL khác

3 PHP và CSDL MS Access

Trang 54

Nguyễn Xuân Quyền * / 62

PHP và CSDL MS Access

<?php

//khởi tạo đối tượng kết nối CSDL

$conn = new COM(“ALODB.Connection”) or die(“Cannot

Trang 55

PHP và CSDL MS Access

•Trong trường hợp kết nối bằng ODBC:

$conn->Open(“Provider=Microsoft.Jet.OLEDB.4.0; Data

Trang 56

Nguyễn Xuân Quyền * / 62

echo “<p>Below is a list of values in the ”;

echo “ MYDB.MDB database, MYABLE table, ”;

echo “ MYFIELD field.</p>”;

Trang 58

Nguyễn Xuân Quyền * / 62

Kết nối CSDL khác

4 PHP và CSDL MS SQL Server

Trang 59

PHP và CSDL MS SQL Server

<?php

//khởi tạo đối tựơng kết nối

$conn = new COM(“ADODB.Connection”) or die(“Cannot start

Trang 60

Nguyễn Xuân Quyền * / 62

echo “<p>Below is a list of values in the ”;

echo “ Intershop database, MYABLE table, ”;

echo “ MYFIELD field.</p>”;

Trang 62

LOGO

Ngày đăng: 28/07/2014, 10:48

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w