09/05/2018, 18:02

Lấy dữ liệu từ MySQL Database sử dụng PHP

Dữ liệu có thể được lấy từ MySQL Tables bởi thực thi lệnh SQL SELECT qua hàm mysql_query trong PHP. Bạn có một vài tùy chọn để lấy dữ liệu từ MySQL. Tùy chọn được sử dụng phổ biến nhất là sử dụng hàm mysql_fetch_array() trong PHP. Hàm này trả về hàng (row) ở dạng như một mảng liên ...

Dữ liệu có thể được lấy từ MySQL Tables bởi thực thi lệnh SQL SELECT qua hàm mysql_query trong PHP. Bạn có một vài tùy chọn để lấy dữ liệu từ MySQL.

Tùy chọn được sử dụng phổ biến nhất là sử dụng hàm mysql_fetch_array() trong PHP. Hàm này trả về hàng (row) ở dạng như một mảng liên hợp, một mảng số, hoặc cả hai. Hàm này trả về FALSE nếu không có hàng nào.

Dưới đây là ví dụ đơn giản để truy xuất record từ Table có tên là employee.

Ví dụ

Bạn thử ví dụ sau để hiển thị tất cả record từ Table có tên là employee.

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'tennguoidung';
   $dbpass = 'matkhau';
   
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn )
   {
      die('Không thể kết nối: ' . mysql_error());
   }
   
   $sql = 'SELECT emp_id, emp_name, emp_salary FROM employee';
   mysql_select_db('test_db');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval )
   {
      die('Không thể lấy dữ liệu: ' . mysql_error());
   }
   
   while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
   {
      echo "ID :{$row['emp_id']}  <br> ".
         "Tên nhân viên : {$row['emp_name']} <br> ".
         "Lương : {$row['emp_salary']} <br> ".
         "--------------------------------<br>";
   }
   
   echo "Lấy dữ liệu thành công
";
   
   mysql_close($conn);
?>

Nội dung của các row được gán cho biến $row và sau đó các giá trị trong row được in.

Ghi chú − Luôn luôn ghi nhớ để đặt các dấu ngoặc móc khi bạn muốn chèn một giá trị mảng trực tiếp vào một chuỗi.

Trong ví dụ trên, hằng MYSQL_ASSOC được sử dụng như là tham số thứ hai cho hàm mysql_fetch_array(), để mà nó trả về row ở dạng như một mảng liên hợp. Với một mảng liên hợp, bạn có thể truy cập Field bởi sử dụng tên của chúng thay vì sử dụng chỉ mục.

PHP cung cấp một hàm khác là mysql_fetch_assoc() mà cũng trả về row ở dạng như một mảng liên hợp.

Ví dụ

Bạn thử ví dụ sau để hiển thị tất cả record từ Table có tên là employee bởi sử dụng hàm mysql_fetch_assoc() trong PHP.

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'tennguoidung';
   $dbpass = 'matkhau';
   
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn )
   {
      die('Không thể kết nối: ' . mysql_error());
   }
   
   $sql = 'SELECT emp_id, emp_name, emp_salary FROM employee';
   mysql_select_db('test_db');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval )
   {
      die('Không thể lấy dữ liệu: ' . mysql_error());
   }
   
   while($row = mysql_fetch_assoc($retval))
   {
      echo "ID :{$row['emp_id']}  <br> ".
         "Tên nhân viên : {$row['emp_name']} <br> ".
         "Lương : {$row['emp_salary']} <br> ".
         "--------------------------------<br>";
   }
   
   echo "Lấy dữ liệu thành công
";
   
   mysql_close($conn);
?>

Bạn cũng có thể sử dụng hằng MYSQL_NUM, như là tham số thứ hai cho hàm mysql_fetch_array(). Việc này làm cho hàm đó trả về một mảng với chỉ mục dạng số.

Ví dụ

Bạn thử ví dụ sau để hiển thị tất cả record từ Table có tên là employee bởi sử dụng tham số MYSQL_NUM trong PHP.

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'tennguoidung';
   $dbpass = 'matkhau';
   
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn )
   {
      die('Không thể kết nối: ' . mysql_error());
   }
   
   $sql = 'SELECT emp_id, emp_name, emp_salary FROM employee';
   mysql_select_db('test_db');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval )
   {
      die('Không thể lấy dữ liệu: ' . mysql_error());
   }
   
   while($row = mysql_fetch_array($retval, MYSQL_NUM))
   {
      echo "ID :{$row[0]}  <br> ".
         "Tên nhân viên : {$row[1]} <br> ".
         "Lương : {$row[2]} <br> ".
         "--------------------------------<br>";
   }
   
   echo "Lấy dữ liệu thành công
";
   
   mysql_close($conn);
?>

Ba ví dụ trên sẽ cho cùng kết quả.

Giải phóng bộ nhớ sử dụng PHP

Giải phóng bộ nhớ ở cuối mỗi lệnh SELECT là một bài thực hành tốt cho bạn. Điều này có thể được thực hiện bởi sử dụng hàm mysql_free_result() trong PHP. Dưới đây là ví dụ minh họa cách hàm này được sử dụng.

Ví dụ

Bạn thử ví dụ sau:

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'tennguoidung';
   $dbpass = 'matkhau';
   
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn )
   {
      die('Không thể kết nối: ' . mysql_error());
   }
   
   $sql = 'SELECT emp_id, emp_name, emp_salary FROM employee';
   mysql_select_db('test_db');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval )
   {
      die('Không thể lấy dữ liệu: ' . mysql_error());
   }
   
   while($row = mysql_fetch_array($retval, MYSQL_NUM))
   {
      echo "ID :{$row[0]}  <br> ".
         "Tên nhân viên : {$row[1]} <br> ".
         "Lương : {$row[2]} <br> ".
         "--------------------------------<br>";
   }
   
   mysql_free_result($retval);
   echo "Lấy dữ liệu thành công
";
   
   mysql_close($conn);
?>

Trong khi lấy dữ liệu, dù bạn viết SQL phức tạp thế nào, thì thủ tục vẫn như trên.

Mọi người cho thể tham gia khóa học thứ 6 của vietjackteam (đang tuyển sinh) vào đầu tháng 03/2018 do anh Nguyễn Thanh Tuyền, admin vietjack.com trực tiếp giảng dạy tại Hà Nội. Chi tiết nội dung khóa học tham khỏa link : .Các bạn học CNTT, điện tử viễn thông, đa phương tiện, điện-điện tử, toán tin có thể theo học khóa này. Số lượng các công việc Java hoặc .NET luôn gấp ít nhất 3 lần Android hoặc iOS trên thị trường tuyển dụng.

Mọi người có thể xem demo nội dung khóa học tại địa chỉ

Các bạn ở xa học không có điều kiện thời gian có thể tham dự khóa Java online để chủ động cho việc học tập. Trong tháng 4/2018, Zaidap khuyến mại giá SỐC chỉ còn 150k cho khóa học, liên hệ facebook admin fb.com/tuyen.vietjack để thanh toán chuyển khoản hoặc thẻ điện thoại, khóa học bằng Tiếng Việt với gần 100 video, các bạn có thể chủ động bất cứ lúc nào, và xem mãi mãi. Thông tin khóa học tại

Loạt bài hướng dẫn học lập trình PHP cơ bản và nâng cao của chúng tôi dựa trên nguồn tài liệu của: Tutorialspoint.com

Follow fanpage của team hoặc facebook cá nhân Nguyễn Thanh Tuyền để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Các bài học PHP phổ biến khác tại Zaidap:

0