Tôi có thể kết nối SQL Server PHP không?

PHP là ngôn ngữ mã nguồn mở được sử dụng để tạo các ứng dụng web dựa trên cơ sở dữ liệu. PHP hỗ trợ một số tiện ích mở rộng cơ sở dữ liệu cho phép các tập lệnh PHP được nhúng trong các trang web để truy cập dữ liệu được lưu trữ trong cơ sở dữ liệu quan hệ và hiển thị kết quả. PHP bao gồm hỗ trợ ODBC thông qua phần mở rộng cơ sở dữ liệu ODBC hợp nhất của nó

Hướng dẫn này chỉ cho bạn cách sử dụng ODBC để truy cập cơ sở dữ liệu SQL Server từ xa từ các tập lệnh PHP chạy trong máy chủ web Apache

Kết nối PHP với SQL Server 2000, SQL Server 2005, SQL Server 2008, SQL Server 2012, SQL Server 2014, SQL Server 2016, SQL Server 2017, SQL Server 2019 và SQL Server Express

Khi phát triển hướng dẫn này, chúng tôi đã truy cập cơ sở dữ liệu SQL Server 2000–2019 và Express từ PHP trên UNIX và Linux

PHP và Linux

Để truy cập SQL Server từ PHP trên Linux, chúng tôi đã sử dụng trình điều khiển Easysoft ODBC với PHP trên RedHat và Ubuntu (Edgy Eft, Feisty Fawn, Gutsy Gibbon và Hardy Heron). Trình điều khiển Easysoft ODBC phải hoạt động với mọi bản phân phối Linux 32-bit hoặc 64-bit gần đây—CentOS, Debian GNU/Linux, Fedora, Kubuntu, Mandrake/Mandriva, OpenSUSE/SUSE, RedHat Enterprise Linux (RHEL), Slackware, v.v.

Để kết nối PHP trên UNIX/Linux với SQL Server, chúng tôi đã sử dụng

PHP4. 2 hoặc muộn hơn

Để kiểm tra xem bạn đang chạy phiên bản PHP nào, hãy sử dụng lệnh

httpd_bin_dir/httpd -V
9 từ dấu nhắc trình bao

Nếu bạn gặp lỗi "command not found" nghĩa là không có PHP trên PATH của bạn (có thể do bạn chưa cài đặt nó). Nếu PHP được cài đặt, bạn sẽ thấy một cái gì đó giống như "4. 2. 2"

Nếu bạn có phiên bản PHP cũ hơn phiên bản được yêu cầu, hãy truy cập http. //www. php. net và nhận bản phân phối cập nhật. Tài liệu và hướng dẫn cài đặt có thể được tìm thấy cả trong README được bao gồm trong bản phân phối và tại http. //www. php. mạng/tài liệu. php

Chúng tôi đã thử nghiệm trình điều khiển Easysoft ODBC với PHP 5. 4. 5, PHP5. 3. 10, PHP5. 2. 3 và PHP4. 2. 2

đang cài đạt PHP

Chúng tôi đã sử dụng trình quản lý gói để cài đặt PHP trên máy khách Linux của mình. Trình quản lý gói là một chương trình cài đặt và gỡ cài đặt phần mềm, đồng thời theo dõi các thành phần mà mỗi phần mềm cần. Trên Ubuntu, chúng tôi đã sử dụng trình quản lý gói Synaptic để cài đặt PHP. Trên RedHat, chúng tôi đã sử dụng trình quản lý gói redhat-config-packages để cài đặt PHP từ RPM

Cài đặt PHP từ Gói trên Ubuntu

  1. Trên menu Hệ thống, chọn Quản trị, sau đó chọn Trình quản lý gói Synaptic
  2. Nhập mật khẩu quản trị (sudo) khi được nhắc
  3. Trong Trình quản lý gói Synaptic, đánh dấu php5 và php5-odbc để cài đặt

    Chấp nhận khi được nhắc cài đặt các gói phụ thuộc (libapache2-mod-php5, php5-common và unixodbc)

  4. Nếu bạn muốn chạy PHP từ dòng lệnh cũng như từ bên dưới Apache, hãy đánh dấu php-cli để cài đặt
  5. Nhấp vào nút Áp dụng

Cài đặt PHP từ RPM trên RedHat

  1. Nhấp vào biểu tượng RedHat, sau đó nhấp vào Thêm/Xóa Ứng dụng từ menu Cài đặt Hệ thống
  2. Nhập mật khẩu gốc khi được nhắc
  3. Thêm các gói Máy chủ web php và php-odbc
  4. Nhấp vào nút Cập nhật

Kiểm tra PHP

Tập lệnh PHP đầu tiên bạn tạo nên gọi hàm

httpd_bin_dir/apache2 -V
0, vì hàm này cho phép bạn kiểm tra xem bản phân phối PHP của bạn có hoạt động chính xác không. Hàm
httpd_bin_dir/apache2 -V
0 hiển thị thông tin cấu hình mở rộng về PHP và hệ thống mà PHP đang chạy trên đó. Để tạo tập lệnh PHP này, bạn cần phải làm một cái gì đó như thế này

  1. Tạo một tệp có tên phpinfo. php
  2. Thêm những dòng này vào phpinfo. php.
    #!/bin/bash
    # This is a simple one liner that amongst other things returns relevant PHP information
    
    
  3. Lưu tệp này, rồi từ dòng lệnh, gõ.
    php phpinfo.php > newhtmlfile.html 
    

    Điều này chuyển hướng đầu ra từ phpinfo thành tệp HTML có tên newhtmlfile. html

Apache 2. 0 hoặc muộn hơn

Khi phát triển hướng dẫn này, chúng tôi đã chạy PHP dưới Apache 2. 4, Apache 2. 2 và Apache 2. 0. Để biết bạn đang chạy phiên bản Apache nào, hãy nhập lệnh sau tại dấu nhắc trình bao

httpd_bin_dir/httpd -V

-Hoặc-

httpd_bin_dir/apache2 -V

trong đó httpd_bin_dir là thư mục cài đặt daemon http. Ví dụ: trên Linux, vị trí mặc định thường là /usr/sbin. Tùy chọn

httpd_bin_dir/apache2 -V
2 hiển thị thông tin về cài đặt Apache. Ví dụ

________số 8

Trên Ubuntu, đảm bảo rằng /etc/apache2/apache2. conf chứa một mục tương tự như

LoadModule php5_module modules/libphp5.so

Mục này cho phép Apache tải động mô-đun PHP

Trên RedHat, hãy kiểm tra /etc/httpd/conf. d/php. conf cho mục này

Chúng tôi đã tạo ra cả hai. php và. phtml tập tin mẫu cho hướng dẫn này. Để báo cho Apache biết nên sử dụng mô-đun nào để xử lý. php và. phtml, chúng tôi đã thêm mục này vào Apache httpd. tập tin conf (apache2. conf trên Ubuntu)

httpd_bin_dir/apache2 -V
0

Lưu ý Tất cả các ví dụ trong hướng dẫn này sẽ hoạt động ngay cả khi bạn chưa cài đặt máy chủ web. Bạn cũng có thể chạy tập lệnh PHP mẫu từ dấu nhắc trình bao

Trình điều khiển ODBC của Máy chủ SQL

Chúng tôi đã sử dụng trình điều khiển ODBC UNIX/Linux cho SQL Server 7. 0, 2000, 2005, 2008, 2012, 2014, 2016, 2017, 2019 và Express để kết nối PHP với cơ sở dữ liệu SQL Server từ xa

  1. Tải xuống trình điều khiển SQL Server ODBC cho nền tảng máy khách PHP của bạn. (Yêu cầu đăng ký. )

    Nếu trình điều khiển ODBC của SQL Server hiện không khả dụng cho nền tảng của bạn, hãy kiểm tra danh sách các nền tảng ODBC-ODBC Bridge Client. ODBC-ODBC Bridge là một giải pháp SQL Server thay thế từ Easysoft, bạn có thể tải xuống từ trang web này

  2. Cài đặt và cấp phép trình điều khiển SQL Server ODBC trên máy đã cài đặt PHP

    Để biết hướng dẫn cài đặt, hãy xem tài liệu trình điều khiển ODBC. Tham khảo tài liệu để biết bạn cần đặt biến môi trường nào (LD_LIBRARY_PATH, LIBPATH, LD_RUN_PATH, SHLIB_PATH tùy thuộc vào trình điều khiển, nền tảng và trình liên kết)

  3. Tạo nguồn dữ liệu ODBC trong /etc/odbc. ini kết nối với cơ sở dữ liệu SQL Server mà bạn muốn truy cập từ PHP. Ví dụ: nguồn dữ liệu SQL Server ODBC này kết nối với phiên bản SQL Server Express phục vụ cơ sở dữ liệu Northwind.
    httpd_bin_dir/apache2 -V
    
    1
  4. Sử dụng isql để kiểm tra nguồn dữ liệu mới. Ví dụ.
    httpd_bin_dir/apache2 -V
    
    2

    Tại dấu nhắc, nhập "trợ giúp" để hiển thị danh sách các bảng. Để thoát, hãy nhấn quay lại trong một dòng nhắc trống

Tập lệnh PHP sau truy cập cơ sở dữ liệu SQL Server từ xa, chọn và sau đó tìm nạp một số dữ liệu thử nghiệm. Sử dụng nó để kiểm tra xem bạn có thể truy cập thành công phiên bản SQL Server của mình từ tập lệnh PHP không. Hãy nhớ thay thế các trình giữ chỗ

httpd_bin_dir/apache2 -V
3 và cơ sở dữ liệu
httpd_bin_dir/apache2 -V
4 và
httpd_bin_dir/apache2 -V
5 bằng các giá trị thích hợp cho cơ sở dữ liệu của bạn

Để chạy tập lệnh này

  1. Sao chép tập lệnh được hiển thị bên dưới vào một tệp mới
  2. Thay thế
    httpd_bin_dir/apache2 -V
    
    3,
    httpd_bin_dir/apache2 -V
    
    7 và
    httpd_bin_dir/apache2 -V
    
    8 bằng nguồn dữ liệu SQL Server ODBC, tên đăng nhập và mật khẩu của bạn
  3. Để chạy tập lệnh trong Apache, hãy lưu tệp bên dưới thư mục gốc tài liệu của máy chủ web Apache của bạn. Ví dụ: /var/www/apache2-default/php-mssql-connection. phtml. Sau đó xem tệp trong trình duyệt web

    http. // localhost/php-mssql-kết nối. phtml

    Nếu trình duyệt web của bạn không chạy trên cùng một máy với máy chủ web, hãy thay thế

    httpd_bin_dir/apache2 -V
    
    9 bằng tên máy chủ hoặc địa chỉ IP của máy chủ web

  4. Để chạy tập lệnh từ dòng lệnh, hãy lưu tệp. Ví dụ,
    Server version: Apache/2.2.4 (Ubuntu)
    Server built:   Oct  4 2007 22:47:20
    Server's Module Magic Number: 20051115:5
    Server loaded:  APR 1.2.7, APR-Util 1.2.7
    Compiled using: APR 1.2.7, APR-Util 1.2.7
    Architecture:   32-bit
    Server MPM:     Prefork
      threaded:     no
        forked:     yes (variable process count)
    Server compiled with....
     -D APACHE_MPM_DIR="server/mpm/prefork"
     -D APR_HAS_SENDFILE
    
    0. Sau đó chạy
    Server version: Apache/2.2.4 (Ubuntu)
    Server built:   Oct  4 2007 22:47:20
    Server's Module Magic Number: 20051115:5
    Server loaded:  APR 1.2.7, APR-Util 1.2.7
    Compiled using: APR 1.2.7, APR-Util 1.2.7
    Architecture:   32-bit
    Server MPM:     Prefork
      threaded:     no
        forked:     yes (variable process count)
    Server compiled with....
     -D APACHE_MPM_DIR="server/mpm/prefork"
     -D APR_HAS_SENDFILE
    
    1
httpd_bin_dir/apache2 -V
2

Ví dụ tiếp theo của chúng ta PHP script sử dụng hàm

Server version: Apache/2.2.4 (Ubuntu)
Server built:   Oct  4 2007 22:47:20
Server's Module Magic Number: 20051115:5
Server loaded:  APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
2 để liệt kê các bảng trong cơ sở dữ liệu SQL Server. Để chạy tập lệnh này

  1. Sao chép tập lệnh được hiển thị bên dưới vào một tệp mới
  2. Thay thế
    httpd_bin_dir/apache2 -V
    
    3,
    httpd_bin_dir/apache2 -V
    
    7 và
    httpd_bin_dir/apache2 -V
    
    8 bằng nguồn dữ liệu SQL Server ODBC, tên đăng nhập và mật khẩu của bạn
  3. Lưu tệp bên dưới thư mục gốc tài liệu của máy chủ web Apache của bạn. Ví dụ: /var/www/apache2-default/mssql-php-retrieve-data. phtml
php phpinfo.php > newhtmlfile.html 
0

Lưu ý Tập lệnh PHP hiển thị ở trên sử dụng bảng HTML để trình bày kết quả. Do đó, tập lệnh được gói trong HTML và dự định sẽ chạy dưới máy chủ web Apache. Nếu bạn muốn chạy tập lệnh từ dấu nhắc hệ vỏ

  1. Sao chép tập lệnh được hiển thị bên dưới vào một tệp mới
  2. Thay thế
    Server version: Apache/2.2.4 (Ubuntu)
    Server built:   Oct  4 2007 22:47:20
    Server's Module Magic Number: 20051115:5
    Server loaded:  APR 1.2.7, APR-Util 1.2.7
    Compiled using: APR 1.2.7, APR-Util 1.2.7
    Architecture:   32-bit
    Server MPM:     Prefork
      threaded:     no
        forked:     yes (variable process count)
    Server compiled with....
     -D APACHE_MPM_DIR="server/mpm/prefork"
     -D APR_HAS_SENDFILE
    
    6,
    httpd_bin_dir/apache2 -V
    
    7 và
    httpd_bin_dir/apache2 -V
    
    8 bằng nguồn dữ liệu SQL Server ODBC, tên đăng nhập và mật khẩu của bạn
  3. Lưu các tập tin. Ví dụ: /tmp/mssql-php-lấy-dữ liệu. php
  4. Chạy tập lệnh từ dòng lệnh. Ví dụ
    Server version: Apache/2.2.4 (Ubuntu)
    Server built:   Oct  4 2007 22:47:20
    Server's Module Magic Number: 20051115:5
    Server loaded:  APR 1.2.7, APR-Util 1.2.7
    Compiled using: APR 1.2.7, APR-Util 1.2.7
    Architecture:   32-bit
    Server MPM:     Prefork
      threaded:     no
        forked:     yes (variable process count)
    Server compiled with....
     -D APACHE_MPM_DIR="server/mpm/prefork"
     -D APR_HAS_SENDFILE
    
    9
httpd_bin_dir/apache2 -V
2

Phần sau đây hướng dẫn bạn cách tạo và gọi các thủ tục SQL Server từ PHP

Để sử dụng tập lệnh mẫu, bạn cần có cơ sở dữ liệu SQL Server trong đó bạn có thể tạo và xóa các thủ tục. Nguồn dữ liệu mà bạn chỉ định trong tập lệnh cần kết nối với cơ sở dữ liệu này

Đây là một thủ tục đơn giản chạy câu lệnh SELECT và trả về kết quả

httpd_bin_dir/apache2 -V
2

Tiện ích mở rộng Đối tượng dữ liệu PHP (PDO) cung cấp lớp trừu tượng truy cập dữ liệu hướng đối tượng, cho phép bạn sử dụng cùng một mã PHP để thực thi các truy vấn SQL, tìm nạp dữ liệu, v.v., bất kể bạn đang sử dụng cơ sở dữ liệu nào. PDO ban đầu được phát hành dưới dạng tiện ích mở rộng cho PHP 5. 0 trên Thư viện cộng đồng mở rộng PHP (PECL). PDO được bao gồm trong PHP 5. 1+. Bởi vì PDO yêu cầu các tính năng hướng đối tượng được giới thiệu trong PHP 5. 0, nó sẽ không hoạt động với các phiên bản PHP cũ hơn

PDO hỗ trợ

  • Các câu lệnh đã chuẩn bị và các tham số ràng buộc
  • giao dịch
  • Đối tượng lớn (LOB)
  • Mã lỗi SQLState
  • con trỏ có thể cuộn

Kiến trúc PDO có hai cấp độ. Cấp cao nhất, PDO, cung cấp giao diện độc lập với cơ sở dữ liệu để tương tác với cơ sở dữ liệu. Cấp thấp hơn bao gồm các trình điều khiển dành riêng cho cơ sở dữ liệu, chuyển đổi giữa giao diện cấp cao nhất và giao diện cơ sở dữ liệu có liên quan (ví dụ: ODBC hoặc OCI). Kiến trúc PDO cách ly các ứng dụng và tập lệnh PHP của bạn khỏi các chi tiết dành riêng cho cơ sở dữ liệu cho phép bạn chuyển từ cơ sở dữ liệu này sang cơ sở dữ liệu khác mà không phải thay đổi mã PHP của mình

Trình điều khiển PDO_ODBC cho phép bạn truy cập cơ sở dữ liệu ODBC thông qua giao diện PDO. PDO_ODBC hỗ trợ Trình quản lý trình điều khiển unixODBC, trình điều khiển này sử dụng để tải trình điều khiển ODBC cho cơ sở dữ liệu đích. PDO_ODBC có thể được sử dụng với trình điều khiển ODBC của SQL Server để cho phép truy cập PDO vào SQL Server từ nền tảng Linux và Unix

Cài đặt trình điều khiển SQL Server ODBC

Bạn cần cài đặt trình điều khiển SQL Server ODBC trên máy đã cài đặt PHP. Để biết thông tin về cách cài đặt trình điều khiển SQL Server ODBC, hãy xem trước đó trong hướng dẫn này

Cài đặt PDO và PDO_ODBC

Chúng tôi đã thử nghiệm trình điều khiển ODBC của SQL Server với PDO/PDO_ODBC bằng cách sử dụng

  • PHP5. 3. 10 chạy cả độc lập và dưới Apache 2. 2. 22. (Cài đặt từ các gói. )
  • PHP5. 4. 5 chạy cả độc lập và dưới Apache 2. 4. 2. ( Nguồn biểu mẫu đã xây dựng. )

Cài đặt từ Gói

Hầu hết các bản phân phối Linux cho phép bạn cài đặt các mô-đun PHP thông qua Trình quản lý gói của chúng (Synaptic, Yum, v.v.). Khi thử nghiệm trên Ubuntu Linux, chúng tôi đã cài đặt các gói sau

PackageNotesphp5-cliCho phép tập lệnh PHP chạy độc lập. Tự động hỗ trợ PDO. php5-odbcBao gồm trình điều khiển PDO_ODBC (và phần mở rộng cơ sở dữ liệu ODBC hợp nhất). Cài đặt PDO_ODBC dưới dạng một đối tượng được chia sẻ mà trình cài đặt gói sẽ định cấu hình PHP để tải tự động bằng cách thêm mục nhập vào php. ban đầu. libodbc1Phiên bản PDO_ODBC có trong gói php5-odbc được xây dựng để hỗ trợ Trình quản lý trình điều khiển unixODBC. Gói libodbc1 chứa các thư viện unixODBC và là gói phụ thuộc của php5-odbc. apache2-mpm-preforkMáy chủ HTTP Apache. Đây là phiên bản không theo luồng vì libapache2-mod-php5 không tương thích với phiên bản luồng của Apache (apache2-mpm-worker). mô-đun libapache2-mod-php5PHP cho Apache. Tự động hỗ trợ PDO. Cho phép PHP chạy dưới Apache. Máy chủ HTTP Apache được cấu hình tự động để tải mô-đun này và sử dụng mô-đun này cho các trang có. php hoặc. phần mở rộng phtml. Không cần cấu hình bổ sung

Xây dựng từ nguồn

Theo mặc định, PDO được tự động tích hợp vào PHP 5. 1+ nhị phân và do đó bạn không cần định cấu hình hệ thống xây dựng PHP để nhận hỗ trợ PDO

Để tạo PDO_ODBC, bạn cần bao gồm tùy chọn

LoadModule php5_module modules/libphp5.so
0 trên dòng cấu hình. (Đối với các tùy chọn cấu hình khác, hãy nhập
LoadModule php5_module modules/libphp5.so
1. ) Để sử dụng PDO_ODBC với trình điều khiển ODBC của SQL Server, bạn cần xây dựng PDO_ODBC có hỗ trợ unixODBC. Để thực hiện việc này, hãy đặt giá trị của tùy chọn
LoadModule php5_module modules/libphp5.so
0 thành
LoadModule php5_module modules/libphp5.so
3

Để xây dựng PDO_ODBC có hỗ trợ unixODBC, PDO_ODBC cần tìm thư viện unixODBC và tệp tiêu đề. Theo mặc định, hệ thống xây dựng PHP yêu cầu unixODBC được cài đặt trong /usr/local. Trình quản lý trình điều khiển unixODBC có trong bản phân phối trình điều khiển ODBC của SQL Server được cài đặt trong cài đặt_dir/easysoft/unixODBC, trong đó cài đặt_dir là thư mục cài đặt Easysoft, theo mặc định, /usr/local. Để xây dựng PDO_ODBC dựa trên phiên bản unixODBC này (là phiên bản mà trình điều khiển ODBC của SQL Server đã được thử nghiệm), hãy đưa đường dẫn này vào giá trị của tùy chọn

LoadModule php5_module modules/libphp5.so
0

PDO_ODBC có thể được xây dựng dưới dạng tĩnh (mặc định, có nghĩa là mô-đun PHP Apache hoặc nhị phân PHP của bạn sẽ được liên kết tĩnh với PDO_ODBC) hoặc mô-đun dùng chung. Để xây dựng PDO_ODBC dưới dạng mô-đun dùng chung, hãy chỉ định

LoadModule php5_module modules/libphp5.so
5 trong giá trị của tùy chọn
LoadModule php5_module modules/libphp5.so
0

Trong ví dụ sau, PDO_ODBC được xây dựng dưới dạng mô-đun dùng chung đối với unixODBC có trong bản phân phối trình điều khiển ODBC của SQL Server

php phpinfo.php > newhtmlfile.html 
3

ghi chú

  • Nếu bạn xây dựng PDO_ODBC dưới dạng mô-đun dùng chung, bạn cần cập nhật tệp php. ini để PDO_ODBC sẽ được tải tự động khi PHP chạy. Để làm điều này, hãy thêm dòng sau vào php. ban đầu.
    php phpinfo.php > newhtmlfile.html 
    
    4

    Nếu bạn không có một php hiện có. ini, hàm PHP

    LoadModule php5_module modules/libphp5.so
    
    7 sẽ báo cáo vị trí mà PHP dự kiến ​​sẽ tìm thấy tệp cấu hình này

  • Nếu bạn muốn sử dụng PDO_ODBC với PHP chạy trong Apache, hãy bao gồm tùy chọn
    LoadModule php5_module modules/libphp5.so
    
    8 trên dòng cấu hình. Chỉ định thư mục chứa các tệp thực thi Apache của bạn trong giá trị tùy chọn
    LoadModule php5_module modules/libphp5.so
    
    8. Ví dụ:
    httpd_bin_dir/apache2 -V
    
    00

    Bạn cũng cần đảm bảo rằng

    • httpd_bin_dir/apache2 -V
      
      01 không được chú thích trong (hoặc được thêm vào) httpd. conf
    • httpd_bin_dir/apache2 -V
      
      02 được thêm vào httpd. conf

    Để biết thêm thông tin về cách xây dựng PHP dưới dạng mô-đun Apache, hãy xem Kích hoạt hỗ trợ ODBC trong PHP trong Apache

Kết nối với SQL Server thông qua PDO

Để sử dụng giao diện PDO để kết nối với SQL Server qua ODBC, trong tập lệnh PHP của bạn, hãy gọi

httpd_bin_dir/apache2 -V
03 để tạo đối tượng xử lý cơ sở dữ liệu

php phpinfo.php > newhtmlfile.html 
5

nơi PDO_ODBC_DSN có định dạng sau

php phpinfo.php > newhtmlfile.html 
6

-Hoặc-

php phpinfo.php > newhtmlfile.html 
7

Bạn có thể chỉ định một ODBC DSN (được định nghĩa trong một tệp chẳng hạn như /etc/odbc. ini) hoặc kết nối không có DSN sau tiền tố

httpd_bin_dir/apache2 -V
04. Ví dụ

php phpinfo.php > newhtmlfile.html 
8

-Hoặc-

php phpinfo.php > newhtmlfile.html 
9

Bạn có thể cung cấp tên người dùng và mật khẩu làm đối số trong lệnh gọi

httpd_bin_dir/apache2 -V
05 (ví dụ: vì bạn không muốn lưu trữ chúng trong odbc. ini)

httpd_bin_dir/httpd -V
0

Bạn cũng có thể kết nối với PDO_ODBC DSN được xác định trong php. ban đầu. Nếu bạn chỉ chỉ định tên PDO_ODBC DSN trong cuộc gọi

httpd_bin_dir/apache2 -V
05 của mình (không có tiền tố), PDO sẽ tìm trong php. ini cho
httpd_bin_dir/apache2 -V
07. Ví dụ

httpd_bin_dir/httpd -V
1
httpd_bin_dir/httpd -V
2

Nếu kết nối của bạn không thành công với lỗi

httpd_bin_dir/apache2 -V
08, hãy sử dụng hàm
httpd_bin_dir/apache2 -V
0 để xuất dòng cấu hình cho phiên bản PHP của bạn. Nếu dòng cấu hình không chứa tùy chọn
LoadModule php5_module modules/libphp5.so
0, PDO_ODBC chưa được cài đặt. Nếu giá trị tùy chọn
LoadModule php5_module modules/libphp5.so
0 chứa
LoadModule php5_module modules/libphp5.so
5, hãy kiểm tra xem php. ini đang tải PDO_ODBC

Ví dụ. Cách kết nối PDO_ODBC với SQL Server và truy xuất dữ liệu

httpd_bin_dir/httpd -V
3

Ví dụ. Cách truy xuất các tham số đầu ra của thủ tục máy chủ SQL từ PHP

Thủ tục được lưu trữ của Máy chủ SQL có thể trả về thông tin bằng cách sử dụng câu lệnh RETURN hoặc một hoặc nhiều tham số đầu ra. Câu lệnh RETURN cho phép một thủ tục được lưu trữ trả về một giá trị số nguyên, báo cáo trạng thái thực thi của thủ tục. Tham số đầu ra cho phép các thủ tục trả về các loại giá trị khác, ví dụ: chuỗi ký tự

PDO, không giống như phần mở rộng ODBC hợp nhất, cung cấp hỗ trợ trực tiếp cho các tham số đầu ra. Phần này chứa một ví dụ gọi một thủ tục được lưu trữ từ PHP và truy xuất một giá trị tham số đầu ra. (Để truy xuất các tham số đầu ra của quy trình bằng cách sử dụng tiện ích mở rộng ODBC hợp nhất, cần có một giải pháp thay thế. )

httpd_bin_dir/httpd -V
4

Cầu ODBC-ODBC là một giải pháp khác của Easysoft cung cấp kết nối PHP với SQL Server từ nền tảng UNIX và Linux

Cầu ODBC-ODBC khả dụng trên nhiều nền tảng hơn trình điều khiển ODBC SQL Server của chúng tôi

Cầu ODBC-ODBC là trình điều khiển ODBC cho UNIX và Linux truy cập MS SQL Server bằng cách sử dụng trình điều khiển ODBC của Windows MS SQL Server

Tôi có thể kết nối SQL Server PHP không?

Những gì bạn cần cài đặt

Cầu ODBC-ODBC cho phép các ứng dụng ODBC trên một máy truy cập trình điều khiển ODBC trên một máy từ xa

Cầu ODBC-ODBC bao gồm trình điều khiển ODBC máy khách (mà bạn cài đặt trên máy nơi PHP đang chạy) và máy chủ (bạn cài đặt trên máy Windows có cài đặt trình điều khiển ODBC của Microsoft SQL Server)

Tham khảo ví dụ sau để biết những gì bạn cần cài đặt trên máy khách và máy chủ của mình

  • Máy khách

    Đây là máy bạn muốn chạy PHP trên đó. Bạn cần phải cài đặt

    • PHP Yêu cầu phiên bản tối thiểu
    • Máy khách cầu nối ODBC-ODBC Máy khách cầu nối ODBC-ODBC là trình điều khiển ODBC nói chuyện với Máy chủ cầu nối ODBC-ODBC và do đó, nguồn dữ liệu ODBC từ xa của bạn. Bạn cần cài đặt ODBC-ODBC Bridge Client và unixODBC Driver Manager. Các bản phân phối cầu ODBC-ODBC bao gồm Trình quản lý trình điều khiển unixODBC. Không cần cài đặt ODBC-ODBC Bridge Server trên máy này. Tham khảo hướng dẫn sử dụng ODBC-ODBC Bridge để biết hướng dẫn cài đặt
  • máy chủ

    Đây là máy mà bạn có (hoặc có thể cài đặt) trình điều khiển ODBC cho cơ sở dữ liệu bạn muốn truy cập. Bạn cần phải cài đặt

    • Trình điều khiển ODBC Đối với hướng dẫn này, bạn cần có trình điều khiển ODBC của Microsoft SQL Server và trình điều khiển này có sẵn trong Cấu phần truy cập dữ liệu của Microsoft (MDAC), Máy khách gốc Microsoft SQL Server và Máy khách gốc Microsoft SQL Server 2008. Bạn không cần cài đặt trình điều khiển ODBC của MS SQL Server trên cùng một máy với cơ sở dữ liệu SQL Server của bạn
    • Máy chủ cầu nối ODBC-ODBC. ODBC-ODBC Bridge Server là một ứng dụng ODBC, nó chấp nhận các kết nối từ ODBC-ODBC Bridge Client và chuyển tiếp chúng đến nguồn dữ liệu ODBC đích của bạn. Bạn cần cấp phép cho ODBC-ODBC Bridge Server và có thể nhận được giấy phép dùng thử trong quá trình cài đặt. Tham khảo hướng dẫn sử dụng ODBC-ODBC Bridge để biết hướng dẫn cài đặt

      Trong các phần tiếp theo, chúng tôi gọi máy Server là windows_server

Nguồn dữ liệu

Nguồn dữ liệu ODBC là tài nguyên được đặt tên mà ứng dụng chuyển đến trình quản lý trình điều khiển ODBC. Nguồn dữ liệu cho người quản lý trình điều khiển biết tải trình điều khiển ODBC nào và sử dụng thuộc tính kết nối nào

Với ODBC-ODBC Bridge, có hai nguồn dữ liệu cần xem xét. Nguồn dữ liệu đầu tiên là ODBC-ODBC Bridge Client trên máy khách của bạn. Nguồn dữ liệu này báo cho người quản lý trình điều khiển sử dụng ODBC-ODBC Bridge Client và đặt một số thuộc tính cho ODBC-ODBC Bridge Client. Các thuộc tính cho ODBC-ODBC Bridge Client biết máy chủ nào sẽ kết nối và nguồn dữ liệu nào trên máy từ xa sẽ sử dụng

Nguồn dữ liệu ODBC-ODBC Bridge Client điển hình trông như thế này

httpd_bin_dir/httpd -V
5

Chúng tôi sẽ mô tả các thuộc tính này trong các phần sau

Lưu ý Khi sử dụng PHP, bạn không cần chỉ định

httpd_bin_dir/apache2 -V
13 và
httpd_bin_dir/apache2 -V
14 trong nguồn dữ liệu, vì chúng được chuyển vào hàm
httpd_bin_dir/apache2 -V
15

xác thực

Có hai cấp độ xác thực bạn cần biết

  1. Xác thực máy chủ cầu nối ODBC-ODBC

    Theo mặc định, ODBC-ODBC Bridge Server cần xác thực máy khách và trở thành người dùng được chỉ định trên máy windows_server. Để thực hiện việc này, ODBC-ODBC Bridge Client cần chỉ định các thuộc tính nguồn dữ liệu

    httpd_bin_dir/apache2 -V
    
    16 và
    httpd_bin_dir/apache2 -V
    
    17.
    httpd_bin_dir/apache2 -V
    
    16 là tên của người dùng có quyền đăng nhập cục bộ vào máy windows_server và
    httpd_bin_dir/apache2 -V
    
    17 là mật khẩu của người dùng đó. Người dùng có quyền đăng nhập cục bộ được định nghĩa là người dùng có thể đăng nhập tại bảng điều khiển của windows_server. Nếu
    httpd_bin_dir/apache2 -V
    
    16 và
    httpd_bin_dir/apache2 -V
    
    17 hợp lệ, ODBC-ODBC Bridge Server trở thành
    httpd_bin_dir/apache2 -V
    
    16

    Lưu ý Bạn có thể tắt xác thực ODBC-ODBC Bridge Server, nhưng điều này có ý nghĩa khác nhau (xem hướng dẫn sử dụng ODBC-ODBC Bridge)

  2. Xác thực máy chủ MS SQL

    Khi bạn tạo nguồn dữ liệu MS SQL Server trong Quản trị viên Windows ODBC, bạn có thể chọn

    • Với xác thực Windows tích hợp

      Điều này đôi khi được gọi là kết nối đáng tin cậy. Trong tình huống này, MS SQL Server kiểm tra người dùng trên máy Windows đang giao tiếp với nó và không yêu cầu tên người dùng hoặc mật khẩu SQL Server

    • Với xác thực SQL Server

      Trong trường hợp này, MS SQL Server yêu cầu tên người dùng cơ sở dữ liệu và mật khẩu mà quản trị viên cơ sở dữ liệu của bạn sẽ thiết lập. Nếu đây là trường hợp của bạn, các thuộc tính kết nối ODBC

      httpd_bin_dir/apache2 -V
      
      23 và
      httpd_bin_dir/apache2 -V
      
      24 phải được chỉ định ở cuối máy khách (bạn thực hiện việc này với đối số thứ hai và thứ ba của
      httpd_bin_dir/apache2 -V
      
      15)

Điều này có thể được giải thích tốt hơn với sự trợ giúp của một ví dụ. Giả sử bạn có tài khoản trên máy windows_server và tên người dùng của bạn là Fred Bloggs và mật khẩu của bạn là mypassword. Quản trị viên cơ sở dữ liệu của bạn đã thiết lập phiên bản SQL Server với xác thực SQL Server đang hoạt động và đã thiết lập cho bạn một tài khoản cho cơ sở dữ liệu với tên người dùng dbuser và mật khẩu dbpassword. Để kết nối với cơ sở dữ liệu này, nguồn dữ liệu ODBC-ODBC Bridge Client của bạn sẽ như thế này

httpd_bin_dir/httpd -V
6

Lưu ý Khi sử dụng PHP, bạn không cần chỉ định

httpd_bin_dir/apache2 -V
13 và
httpd_bin_dir/apache2 -V
14 trong nguồn dữ liệu, vì chúng sẽ được chuyển vào hàm
httpd_bin_dir/apache2 -V
15

Ngoài việc thiết lập nguồn dữ liệu ODBC-ODBC Bridge, tên người dùng và mật khẩu cơ sở dữ liệu của bạn phải được chuyển vào hàm

httpd_bin_dir/apache2 -V
15 trong tập lệnh PHP của bạn. Đây là một chuỗi kết nối
httpd_bin_dir/apache2 -V
15 điển hình

httpd_bin_dir/httpd -V
7

Khi bạn sử dụng chức năng này, bạn phải đặt

httpd_bin_dir/apache2 -V
21 thành tên người dùng mà bạn đã được cung cấp cho cơ sở dữ liệu và
httpd_bin_dir/apache2 -V
22 thành mật khẩu cho tên người dùng đó. Sử dụng kịch bản tương tự như trước đây, cuộc gọi
httpd_bin_dir/apache2 -V
15 của bạn sẽ giống như

httpd_bin_dir/httpd -V
8

Cổng máy chủ

Thuộc tính

httpd_bin_dir/apache2 -V
24 báo cho trình điều khiển ODBC ODBC-ODBC Bridge Client kết nối với máy chủ nào.
httpd_bin_dir/apache2 -V
24 là tên hoặc địa chỉ IP của máy chủ nơi Dịch vụ máy chủ cầu nối ODBC-ODBC đang chạy và cổng mà Máy chủ đang lắng nghe. Cổng mặc định là 8888 trong cấu hình ODBC-ODBC Bridge Server. Đây không phải là cổng mà công cụ cơ sở dữ liệu của bạn đang lắng nghe. Tách máy chủ khỏi cổng bằng dấu hai chấm (. ) trong giá trị thuộc tính
httpd_bin_dir/apache2 -V
24. Ví dụ: windows_server. 8888

Máy chủ cầu ODBC-ODBC có thể định cấu hình thông qua giao diện HTTP. Giả sử ODBC-ODBC Bridge Server của bạn được cài đặt trên windows. công ty của tôi. local, bạn có thể truy cập giao diện quản trị ODBC-ODBC Bridge Server bằng URL http. //các cửa sổ. công ty của tôi. địa phương. 8890

Lưu ý Trên Windows, cài đặt ODBC-ODBC Bridge Server đặt cổng giao diện HTTP thành 8890 theo mặc định. Cài đặt mặc định này có thể được thay đổi trong quá trình cài đặt máy chủ ODBC-ODBC Bridge và thông qua phần Cấu hình của giao diện HTTP

Mục tiêuDSN

Thuộc tính

httpd_bin_dir/apache2 -V
27 cho ODBC-ODBC Bridge Client biết nguồn dữ liệu nào trên máy chủ từ xa mà bạn muốn truy cập. Đây phải là tên của nguồn dữ liệu Hệ thống vì ODBC-ODBC Bridge Server chỉ có thể truy cập các nguồn dữ liệu Hệ thống. (Để tạo nguồn dữ liệu Hệ thống, trong Quản trị viên Microsoft ODBC, hãy chọn tab Hệ thống DSN trước khi nhấp vào Thêm)

Lưu ý Để biết thêm thông tin về cách tạo DSN hệ thống trên Windows, hãy xem hướng dẫn ODBC-ODBC Bridge

Đi đâu bây giờ

Sử dụng chương trình isql của unixODBC (có trong bản phân phối ODBC-ODBC Bridge) để kiểm tra nguồn dữ liệu Máy khách ODBC-ODBC Bridge của bạn. Sau đó làm theo các ví dụ PHP SQL Server trong hướng dẫn này

Làm cách nào để kết nối với cơ sở dữ liệu SQL bằng PHP?

php $servername = "localhost"; . "

Bạn có thể sử dụng PHP với SQL không?

Với PHP, bạn có thể kết nối và thao tác với cơ sở dữ liệu. MySQL là hệ thống cơ sở dữ liệu phổ biến nhất được sử dụng với PHP .

Làm cách nào để lấy dữ liệu từ SQL Server bằng PHP?

Có hai cách để kết nối với cơ sở dữ liệu bằng PHP. .
Hướng đối tượng MySQLi $conn->query($query);
MySQLi Thủ tục mysqli_query($conn, $query)
PDO. $stmt = $conn->prepare($query);

Làm cách nào để kết nối với máy chủ trong PHP?

Trong PHP, chúng ta có thể kết nối với cơ sở dữ liệu bằng máy chủ web XAMPP bằng cách sử dụng đường dẫn sau. .
Khởi động máy chủ XAMPP bằng cách khởi động Apache và MySQL
Viết PHP script để kết nối với XAMPP
Chạy nó trong trình duyệt cục bộ
Cơ sở dữ liệu được tạo thành công dựa trên mã PHP