PHP Kết nối SQL(Microsoft SQL SERVER) thông qua ODBC

ODBC là gì?
ODBC (viết tắt của Open Database Connectivity - kết nối cơ sở dữ liệu mở) cung cấp một phương pháp API phần mềm chuẩn cho phép bạn kết nối đến các cơ sở dữ liệu như là MSSQL, MySQL, MS Access...

Sau đây mình xin hướng dẫn bạn kết nối php với cơ sở dữ liệu Microsoft SQL Server. Mặc định PHP kết nối với MySQL, còn ASP thì làm việc với MSSQL. Nhưng trong một số trường hợp bạn muốn viết ứng dụng PHP của mình kết nối với MMSQL bạn có thể đọc bài viết của mình để kết nối nhé.

Tạo Một Kết Nối ODBC
Với kết nối ODBC, bạn có thể kết nối với bất kỳ cơ sở dữ liệu nào, trên bất kỳ máy tính nào trong mạng của bạn, miễn là có kết nối ODBC.

Sau đây là các bước để tạo kết nối ODBC đến cở sở dữ liệu MSSQL:
  1. Mở ứng dụng Administrative Tools trên Control Panel của bạn.
  2. Kích Đúp Chuột vào Data sources (ODBC) trên thanh công cụ.
  3. Chọn Thanh System DSN.
  4. Kích vào Add trong trang System DSN.
  5. Chọn cơ sở dữ liệu mà bạn muốn kết nối đến (ở đây mình chọn SQL Server Native Client 11.0).  bạn điền đầy đủ thông tinchọn Finish.
  6. Sau đó ở màn hình tiếp theo xuất hiện bạn có kể kiểm tra kết nối đến cở sỡ dữ liệu của bạn, nếu thành công bấm OK.
Kết Nối Đến ODBC
Trong PHP đã có sẵn 1 hàm là odbc_connect() cho phép bạn kết nối đến một cơ sở dữ liệu ODBC. Hàm này yêu cầu 4 tham số:  Tên của ODBC, tên người dùng, mật khẩu, tùy chọn.
Sau đó Bạn sẽ dùng hàm odbc_exec() để thực thi câu lệnh SQL.

Thí dụ:
Ví dụ sau đây tạo ra một kết nối đến DSN được gọi là test_database, không có tên người dùng và không có mật khẩu. Sau đó, nó tạo ra một câu lệnh SQL và thực thi nó:
$conn=odbc_connect('test_database','',''); 
$sql="SELECT * FROM customers"; 
$rs=odbc_exec($conn,$sql);

Lấy dữ liệu:
Hàm odbc_fetch_row () được sử dụng để trả về các bản ghi từ tập kết quả. Hàm này trả về TRUE nếu có thể trả về các hàng, nếu không thì trả về FALSE.

Hàm có hai tham số: mã định danh kết quả ODBCsố hàng tùy chọn:
odbc_fetch_row ($ rs)

Lấy các trường từ một bản ghi:
Hàm odbc_result () được sử dụng để đọc các trường từ một bản ghi. Hàm này có hai tham số: mã định danh kết quả ODBCsố hoặc tên trường.

Dòng mã dưới đây trả về giá trị của trường đầu tiên từ bản ghi:
$ compname = odbc_result ($ rs, 1);

Dòng mã dưới đây trả về giá trị của một trường có tn "CompanyName":
$ compname = odbc_result ($ rs, "CompanyName");

Đóng kết nối ODBC
Hàm odbc_close () được sử dụng để đóng kết nối ODBC.
odbc_c Đóng ($ Conn);

Một ví dụ ODBC:
Ví dụ sau đây cho thấy cách tạo kết nối cơ sở dữ liệu trước, sau đó là tập kết quả và sau đó hiển thị dữ liệu trong bảng HTML.

<html>
<body>
<?php
$conn=odbc_connect('northwind','','');
if (!$conn)
  {exit("Connection Failed: " . $conn);}
$sql="SELECT * FROM customers";
$rs=odbc_exec($conn,$sql);
if (!$rs)
  {exit("Error in SQL");}
echo "<table><tr>";
echo "<th>Companyname</th>";
echo "<th>Contactname</th></tr>";
while (odbc_fetch_row($rs))
{
  $compname=odbc_result($rs,"CompanyName");
  $conname=odbc_result($rs,"ContactName");
  echo "<tr><td>$compname</td>";
  echo "<td>$conname</td></tr>";
}
odbc_close($conn);
echo "</table>";
?>
</body>
</html>

Cảm Ơn các Bạn đã theo dõi.
Reactions

Post a Comment

2 Comments

  1. xin chào bạn, mình đang tìm hiểu chỗ php connect đến ODBC, nhưng chưa biết kết nối đến ODBC trên 1 máy khác thì ntn. Bạn có thể chỉ giúp mình được không. Mình cảm ơn

    ReplyDelete
    Replies
    1. Hello,

      Bạn đã kết tạo được kết nối trong Data sources (ODBC) của máy tính chưa và thử chức năng test connection trong đó ok chưa?

      Nếu ok thì kết nối bình thường thôi. quan trọng thử test connection trong đó trước nhé để đảm bảo mọi thử ok.

      Delete