sql >> Databáze >  >> RDS >> Sqlserver

Připojte PHP k MSSQL přes PDO ODBC

Existuje několik konfiguračních souborů, které musíte nastavit. /etc/odbc.ini , /etc/odbcinst.ini a /etc/freetds/freetds.conf (tato umístění jsou platná pro Ubuntu 12.04 a pravděpodobně správná pro většinu *nixů).

Budete muset nainstalovat unixodbc a freetds (nejsem si jistý, jaké jsou názvy balíčků v CentOS). V Ubuntu by to bylo apt-get install unixodbc tdsodbc .

Pokud potřebujete pomoc s jejich instalací, podívejte se na tuto otázku Nelze nainstalovat FreeTDS přes Yum Package Manager

/etc/odbc.ini (tento soubor může být prázdný)

# 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 (nebo jej můžete najít na /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

Možná budete muset změnit tds version = 7.1 řádek výše v závislosti na vaší verzi MSSQL.

Po provedení těchto změn budete muset restartovat Apache.

V kódu PHP vytvoříte svůj objekt PDO takto:

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

Upozorňujeme, že vaše uživatelské jméno může být ve formátu:domain\username .

Také budete vědět, že to fungovalo, když spustíte phpinfo() na své stránce a vyhledejte „freetds“, čímž se zobrazí sekce mssql s freetds uvedenými jako verze knihovny.



  1. Vytváření modelu strojového učení pomocí SQL Server, ML.NET a C#

  2. psql:server neočekávaně ukončil připojení

  3. Jak přidat sloupec, pokud neexistuje na PostgreSQL?

  4. Nelze vytvořit instanci chyby poskytovatele OLE DB jako uživatel ověřování systému Windows