Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Свържете PHP към MSSQL чрез PDO ODBC

Има няколко конфигурационни файла, които трябва да настроите. /etc/odbc.ini , /etc/odbcinst.ini и /etc/freetds/freetds.conf (тези местоположения са валидни за Ubuntu 12.04 и вероятно са правилни за повечето *nixs).

Ще трябва да инсталирате unixodbc и freetds (не съм сигурен какви са имената на пакетите в CentOS). В Ubuntu това би било apt-get install unixodbc tdsodbc .

За помощ при инсталирането им вижте този въпрос Не мога да инсталирам FreeTDS чрез Yum Package Manager

/etc/odbc.ini (този файл може да е празен)

# 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 (или можете да го намерите в /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

Може да се наложи да промените tds version = 7.1 ред по-горе в зависимост от вашата версия на MSSQL.

Ще трябва да рестартирате apache, след като направите тези промени.

Във вашия PHP код ще създадете своя PDO обект по следния начин:

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

Имайте предвид, че може да се наложи вашето потребителско име да бъде във формат:domain\username .

Освен това ще разберете, че работи, ако изпълните phpinfo() във вашата страница и потърсете „freetds“, което ще покаже раздел mssql с freetds, посочени като версия на библиотеката.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземете знака между първите 2 специални знака в SQL

  2. 10 SP_EXECUTESQL Трябва да избягвате за по-добър динамичен SQL

  3. Създайте изчислена колона, като използвате данни от друга таблица

  4. Има ли комбинация от LIKE и IN в SQL?

  5. Има ли SQL Server Profiler за SQL Server Express?