Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Kết nối PHP với MSSQL qua PDO ODBC

Có một số tệp cấu hình bạn cần phải thiết lập. /etc/odbc.ini , /etc/odbcinst.ini/etc/freetds/freetds.conf (các vị trí này hợp lệ cho Ubuntu 12.04 và có thể đúng cho hầu hết các * nixes).

Bạn sẽ cần cài đặt unixodbcfreetds (không chắc tên gói trên CentOS). Trong Ubuntu, đây sẽ là apt-get install unixodbc tdsodbc .

Để được trợ giúp cài đặt những thứ này, hãy xem câu hỏi này Không thể cài đặt FreeTDS qua Trình quản lý gói Yum

/etc/odbc.ini (tệp này có thể trống)

# Define a connection to a Microsoft SQL server
# The Description can be whatever we want it to be.
# The Driver value must match what we have defined in /etc/odbcinst.ini
# The Database name must be the name of the database this connection will connect to.
# The ServerName is the name we defined in /etc/freetds/freetds.conf
# The TDS_Version should match what we defined in /etc/freetds/freetds.conf
[mssql]
Description             = MSSQL Server
Driver                  = freetds
Database                = XXXXXX
ServerName              = MSSQL
TDS_Version             = 7.1

/etc/odbcinst.ini

# Define where to find the driver for the Free TDS connections.
# Make sure you use the right driver (32-bit or 64-bit).
[freetds]
Description = MS SQL database access with Free TDS
Driver      = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
#Driver      = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup       = /usr/lib/i386-linux-gnu/odbc/libtdsS.so
UsageCount  = 1

/etc/freetds/freetds.conf (hoặc bạn có thể tìm thấy nó tại /etc/freetds.conf)

# The basics for defining a DSN (Data Source Name)
# [data_source_name]
#       host = <hostname or IP address>
#       port = <port number to connect to - probably 1433>
#       tds version = <TDS version to use - probably 8.0>

# Define a connection to the Microsoft SQL Server
[mssql]
    host = XXXXXX
    port = 1433
    tds version = 7.1

Bạn có thể phải thay đổi tds version = 7.1 dòng trên tùy thuộc vào phiên bản MSSQL của bạn.

Bạn sẽ phải khởi động lại apache sau khi thực hiện các thay đổi này.

Trong mã PHP của bạn, bạn sẽ tạo đối tượng PDO của mình như sau:

$pdo = new PDO("dblib:host=mssql;dbname=$dbname", "$dbuser","$dbpwd");

Lưu ý rằng tên người dùng của bạn có thể phải ở định dạng:domain\username .

Ngoài ra, bạn sẽ biết rằng nó hoạt động nếu bạn thực thi phpinfo() trong trang của bạn và tìm kiếm "freetds" sẽ hiển thị phần mssql với freetds được liệt kê là Phiên bản Thư viện.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao truy vấn Microsoft SQL Server 2012 mất vài phút so với JDBC 4.0 nhưng lại mất vài phút trong Management Studio?

  2. Cách đổi tên tất cả các Ràng buộc mặc định theo Tiêu chuẩn đặt tên hoặc Quy ước đặt tên trong SQL Server - Hướng dẫn sử dụng SQL Server / TSQL Phần 93

  3. Làm thế nào tôi có thể biết khi nào Tổng số chỉ mục văn bản đầy đủ của SQL kết thúc?

  4. Nhận phần bên phải của chuỗi trong SQL Server (T-SQL)

  5. Yêu cầu không thành công hoặc dịch vụ không phản hồi kịp thời?