Thứ Sáu, 12 tháng 9, 2014

Trong bài viết này sẽ chỉ cho bạn thấy cách thức kết nối vào một cơ sở dữ liệu MySQL bằng cách sử dụng PHP.
Kết nối vào một Database
Hàm mysql_connect được sử dụng để kết nối vào một cơ sở dữ liệu MySQL. Hàm này nhận các tham số là host, username, và password và trả lại một giá trị chứng thực kết nối MySQL. Ví dụ sau đây kết nối đến một cơ sở dữ liệu bằng cách dùng biến $host, và $un và $pw được đưa vào từ một Form để kết nối tới cơ sở dữ liệu.
$link = mysql_connect($host, $un, $pw);Tất cả các tham số đối với hàm này là tùy chọn. Các giá trị sau đây được giả định dùng cho các tham số bị thiếu.
Các giá trị tham số mặc định Tham số Giá trị
Host
'localhost:3306'
Username
Tên của người sử dụng nắm được quyền sử dụng tiến trình máy chủ
Password
Không có
Ví dụ sau đây cho thấy cách thức liên kết đến localhost mà không cần cung cấp username hay password.
$link = mysql_connect("localhost");hoặc $link = mysql_connect("localhost", "root","localhost")
Nếu cuộc kết nối này không thành công, thì hàm này trả lại giá trị false. Bạn nên sử dụng giá trị trả lại để xem cuộc kết nối của bạn có thành công hay không.
if (!$link = mysql_connect($host))
exit("Unable to connect to $host");Lựa chọn một cơ sở dữ liệu
MySQL Server là một hệ quản trị cơ sở dữ liệu và do đó nó chứa nhiều cơ sở dữ liệu. Trên thực tế thì khi làm việc chúng ta thường phải xác định một cơ sở dữ liệu nào đó để làm việc. Hàm mysql_select_db được sử dụng để lựa chọn một cơ sở dữ liệu. Hàm này lấy các tham số là tên của cơ sở dữ liệu và giá trị chứng thực kết nối. Giá trị chứng thực kết nối là tùy chọn và nếu nó bị bỏ đi thì hàm này sẽ cố gắng sử dụng giá trị chứng thực kết nối của đường kết nối được mở gần nhất trước đó. Nếu không tồn tại bất cứ một đường nối nào cho nó, thì hàm này sẽ thiết lập một đường nối như thể hàm mysql_connect đã được gọi mà không có tham số. Ví dụ sau đây lựa chọn cơ sở dữ liệu, tìm kiếm bằng cách sử dụng giá trị biến $link đã được trả lại từ hàm mysql_connect.
mysql_select_db("search", $link);Nếu hàm này thất bại, nó sẽ trả lại false. Bạn có thể sử dụng giá trị này để xem hàm đó có thực hiện thành công hay không.
if (!mysql_select_db("search", $link))
exit("Unable to select the database");Thực hiện các câu truy vấn
Hàm mysql_query nhận một câu truy vấn hoạt động trên cơ sở dữ liệu và chuỗi kết nối như là các tham số. Chuỗi kết nối là tuỳ chọn và nếu bị bỏ đi thì cái được sử dụng là đường kết nối mở cuối cùng. Bạn có thể khồng dùng dấu chấm phẩy trong chuỗi truy vấn. Ví dụ sau định nghĩa chuỗi truy vấn SQL, và thực thi một câu truy vấn trên cơ sở dữ liệu đã được chọn.
$query = "SELECT Page, Directory FROM search";
$result = mysql_query($query, $link);Nếu câu truy vấn không thành công, thì hàm sẽ trả lại false. Bạn có thể sử dụng giá trị này để xác định xem liệu hàm đó có thực hiện được hay không.
$query = "SELECT Page, Directory FROM search";
if (!$result = mysql_query($query, $link))
exit("Illegal query");Nhặt ra các bản ghi từ một câu truy vấn
Hàm mysql_fetch_array có thể được sử dụng lấy ra một hàng từ kết quả để đưa vào một mảng. Hàm này nhận các tham số là tập bản ghi có được như là kết quả của câu truy vấn, và một kiểu trả lại. Kiểu trả lại là tuỳ chọn và được tổng kết trong bảng sau.
Kiểu mảng
Kiểu trả lại
Ý nghĩa
MYSQL_ASSOC
Trả lại một mảng kết hợp.
MYSQL_NUM
Trả lại một mảng số.
MYSQL_BOTH
Trả lại một mảng kết hợp, mảng đó cũng được đánh chỉ mục bằng các con số. Đây là giá trị mặc định.
Ví dụ sau đây lấy ra một hàng từ một tập kết quả, và đặt nó vào trong một mảng kết hợp có tên là $row.
$row = mysql_fetch_array($result, MYSQL_ASSOC);Nếu không lấy ra được hàng nào thì hàm này trả lại false. Bạn có thể dùng hàm này trong một vòng lặp để lặp lại thao tác trên tất cả các bản ghi nằm trong tập kết quả.
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
// Thao tác với hàng ở đây
}Nếu bạn sử dụng một mảng kết hợp thì bạn có thể tiếp cận từng phần tử được bằng cách sử dụng tên gọi của cột như thấy ở ví dụ sau.
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
print $row["Directory"] . "\t" . $row["Page"] . "<br>\n";
}Đóng tập kết quả và đường kết nối
Khi bạn làm việc xong với tập kết quả và đường kết nối rồi thì bạn nên đóng chúng lại. Hàm mysql_free_result được sử dụng để đóng tập kết quả, và hàm mysql_close được sử dụng để đóng đường kết nối.
// Giải phóng tập kết quả
mysql_free_result($result);
// Đóng kết nối
mysql_close($link);Tổng hợp các quy trình
Ví dụ này đây liệt kê các giá trị của cột Directory và Page từ tất cả các bản ghi từ cơ sở dữ liệu search. 
CODE
mysqlexample.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
           "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
   <title>Ví dụ MySQL</title>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p>
<?php
if (!$link = mysql_connect("localhost"))
   exit("Unable to make a connection to the database");

if (!mysql_select_db("search", $link))
   exit("Unable to select the database");

// Định nghĩa một câu truy vấn SQL Select
$query = "SELECT Page, Directory FROM search";
if (!$result = mysql_query($query, $link))
   exit("Illegal query");
// Hiện thị các kết quả của câu truy vấn trong một bảng
print "<table border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n";
print "<tr><td><b>Directory</b></td><td><b>Page</b></td></tr>";

while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
   print "<tr><td>";
   print $row["Directory"];
   print "</td><td>";
   print $row["Page"];
   print "</td></tr>\n";
}
print "</table>\n";

// Giải phóng Tập kết quả
mysql_free_result($result);
// Đóng kết nối
mysql_close($link);
?>
</body>
</html>
hoclaptrinh - November 26, 2003 01:18 PM (GMT)
Các bạn check bài này nhé. Tôi có định dạng HTML trong hợp lý hơn

DarkHawk - November 29, 2003 02:42 PM (GMT)
Bác có thể làm chi tiết hơn không. Chẳng hạn như hướng dẫn thêm cho độc giả cài đặt MySQL, tạo CSDL để test. Và nên có source hoàn chỉnh để họ gõ vào. Click một cái thì nó hiện ra đàng hoàng. Thế ngừoi ta mới thích
hoclaptrinh - November 30, 2003 09:42 AM (GMT)
Đồng ý!
Vậy là tôi còn làm thêm 2 việc. Hướng dẫn cài MySQL, cách sử dụng MySQL để tạo cơ sở dữ liệu để test. Việc thứ 2 là cung cấp mã nguồn trọn vẹn để thử nghiệm với PHP.
Vậy thì thế này: Thanh viết một bài hướng dẫn cài MySQL đi, có hình ảnh minh họa nhỏ thôi. Ta lấy ngay cơ sở dữ liệu mặc định là mysql với tài khoản root/localhost để connect.
Tôi sẽ cung cấp mã nguồn. Thông báo cho độc giả biết: ai cần mã nguồn đầy đủ xin liên hệ tòa soạn: baohoclaptrinh@oci.com.vn để được cung cấp. Ke ke!
DarkHawk - November 30, 2003 12:54 PM (GMT)
Duyệt ngay
cài My SQL thì dễ thôi mà. keke

0 nhận xét :

Đăng nhận xét