ADOdb

Database Abstraction Layer for PHP

User Tools

Site Tools


v5:database:microsoft_sql_server

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
v5:database:microsoft_sql_server [2018/07/08 01:07] – [mssql] mnewnhamv5:database:microsoft_sql_server [2022/11/15 02:13] (current) – [Common Connection Problems] mnewnham
Line 2: Line 2:
 ~~NOTOC~~ ~~NOTOC~~
 ===== Description ===== ===== Description =====
-There are 2 supported drivers that allow connections to Microsoft SQL Server databases. +There are 2 supported drivers that allow connections to Microsoft SQL Server databases from SQL Server 2005 upwards
 ==== mssqlnative ==== ==== mssqlnative ====
-This driver, which runs on both Windows and Linux clients, allows connections to Microsoft SQL Server databases versions 2008 and up, and uses the Microsoft Native Client libraries. This driver is now recommended for both Windows and Linux platforms, and provides the fastest PHP connection.+This driver, which runs on both Windows and Linux clients, allows connections to Microsoft SQL Server databases versions 2008 and up, and uses the Microsoft Native Client libraries. This driver is recommended for Windows Clients running PHP 5.3 and higher, and Linux Clients running PHP 7.0 and higher, and provides the fastest PHP connection.
  
 More about the Microsoft SQL Server client for Linux [[https://github.com/Microsoft/msphpsql|here]] More about the Microsoft SQL Server client for Linux [[https://github.com/Microsoft/msphpsql|here]]
Line 12: Line 12:
  
 More about the FreeTDS libraries [[http://www.freetds.org/|here]] More about the FreeTDS libraries [[http://www.freetds.org/|here]]
-==== SQL Server 2003 ==== +
-Connecting to SQL server 2003 creates a difficulty There is no support for native client connections, and the alternative method, using php_mssql.dll was removed in PHP 5.3. The only alternative is to use a generic ODBC driver that does not require the Microsoft Native Client libraries. +
-------------------------------------+
 ====== mssqlnative ====== ====== mssqlnative ======
 <WRAP right box round 300px> <WRAP right box round 300px>
Line 28: Line 26:
 [[v5:database:pdo#pdo_sqlsrv|PDO driver for SQL Server]]\\ [[v5:database:pdo#pdo_sqlsrv|PDO driver for SQL Server]]\\
 [[v5:database:odbc#odbc_mssql|ODBC driver for SQL Server]]\\ [[v5:database:odbc#odbc_mssql|ODBC driver for SQL Server]]\\
 +== See Also ==
 +[[v5:reference:connection:setconnectionparameter#sqlserver|setConnectionParameter()]]
 </WRAP> </WRAP>
  
Line 74: Line 74:
 $db->connect('SERVER\SQLEXPRESS',NULL,NULL,'NORTHWND'); $db->connect('SERVER\SQLEXPRESS',NULL,NULL,'NORTHWND');
 </code> </code>
 +
 +===== Common Connection Problems =====
 +Recent versions of SQL Server fail to connect with an error ''Message: [Microsoft][ODBC Driver 18 for SQL Server]SSL Provider: The certificate chain was issued by an authority that is not trusted.''
 +
 +This problem can be resolved by adding
 +
 +<code php>
 +$db->setConnectionParameter('TrustServerCertificate',1);
 +</code>
 +
 +before issuing the ''$db->connect()'' statement
 +
 +
 ------------------------------ ------------------------------
 +===== How to create a connection under Linux =====
 +Establishing a connection to a SQL server database from a Linux client can be difficult, but by installing the freetds tools as well as the Microsoft ones provides a highly useful tool, //**tsql**//
 +
 +In the example, our database is running on a server 192.168.0.65:
 +<code>
 +# tsql -LH 192.168.0.65
 +    ServerName STUDY
 +   InstanceName SQLEXPRESS
 +    IsClustered No
 +        Version 12.0.2000.8
 +            tcp 55644
 +             np \\STUDY\pipe\MSSQL$SQLEXPRESS\sql\query
 +</code>
 +The response from the command tells us the
 +  * The SQL server instance is visible from the client
 +  * the service is running on port 55644
 +
 +We can now create a connection string:
 +
 +<code php>
 +$db = ADONewConnection('mssqlnative');
 +$db->connect('192.168.0.65,55644',$user,$pass,'NORTHWND');
 +</code>
 +--------------------------------------
  
 ===== mssql (Unix) ===== ===== mssql (Unix) =====
Line 89: Line 126:
 [[v5:database:pdo#pdo_mssql|PDO driver for FreeTDS]] [[v5:database:pdo#pdo_mssql|PDO driver for FreeTDS]]
 </WRAP> </WRAP>
-**This is the preferred driver for connecting to a SQL server database from Linux/Unix clients.**+**This is the preferred driver for connecting to a SQL server database from Linux/Unix clients, when the PHP version is less than 7.0**
 This driver provides access to Microsoft SQL Server databases from unix systems via Freetds This driver provides access to Microsoft SQL Server databases from unix systems via Freetds
  
-{{tag>[SQL_Server unix active freetds]}}+{{tag>[SQL_Server unix active freetds tier1]}}
 -------------------------------------- --------------------------------------
 ===== mssql (Windows) ===== ===== mssql (Windows) =====
Line 136: Line 173:
 ^ADOdb V6|Yes| ^ADOdb V6|Yes|
 </WRAP> </WRAP>
-This driver appears to provide Unicode enhancements to the mssql driver+This driver appears to provide Unicode enhancements to the mssql driver. You can set character sets using the [[v5:reference:connection:setconnectionparameter|setConnectionParameter()]] command
  
 {{tag>["Microsoft SQL Server" unicode freetds windows]}} {{tag>["Microsoft SQL Server" unicode freetds windows]}}
v5/database/microsoft_sql_server.1531004847.txt.gz · Last modified: 2018/07/08 01:07 by mnewnham