百科狗-知识改变命运!
--

MS SQL Server (PDO) - PDO驱动

是丫丫呀12个月前 (11-21)阅读数 42#技术干货
文章标签常量

MS SQL Server (PDO)

PDO_SQLSRV是一个驱动程序,它实现了PHP数据对象(PDO)接口,允许从PHP访问MS SQL Server(从SQL Server 2005开始)和SQL Azure数据库。

安装

PDO_SQLSRV扩展名是通过向PHP添加适当的DLL文件来启用的扩展目录和php.ini文件的相应条目。这个PDO_SQLSRV下载提供了8个驱动程序文件,其中4个用于PDO支持。如果运行的是非线程安全的PHP(PHP 5.3),请使用PHP_pdo_sqlsrv_53_nts.dll文件。(如果使用IIS作为网络服务器)。如果运行的是线程安全的PHP,请使用PHP_pdo_sqlsrv_53_ts.dll文件。类似地,对于PHP 5.4,使用PHP_pdo_sqlsrv_54_nts.dll或PHP_pdo_sqlsrv_54_ts.dll取决于您的PHP安装是非线程安全的还是线程安全的。

MS SQL Server (PDO) - PDO驱动

The most recent version of the driver is available for download here: » SQLSRV download. If you need support for PHP 5.2 and/or PHP compiled with VC6, use the 2.0 release of the driver: » SQLSRV 2.0 download. The driver sources are hosted in a » public repository.

For more information about system requirements, see » SQLSRV System Requirements.

The PDO_SQLSRV extension is only compatible with PHP running on Windows. For Linux, see ODBC and » Microsoft's SQL Server ODBC Driver for Linux.

预定义常量

下列常量由此驱动定义,且仅在扩展编译入 PHP或在运行时动态载入时可用。另外,使用此驱动时,仅会使用这些驱动特定的常量。使用其他驱动的驱动特定的常量可能会导致不可预见的情况。如果代码可运行于多个驱动,PDO::getAttribute()可被用于获取PDO_ATTR_DRIVER_NAME属性以检查驱动。

PDO::SQLSRV_TXN_READ_UNCOMMITTED (integer) This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Read Uncommitted. PDO::SQLSRV_TXN_READ_COMMITTED (integer) This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Read Committed. PDO::SQLSRV_TXN_REPEATABLE_READ (integer) This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Repeateable Read. PDO::SQLSRV_TXN_SNAPSHOT (integer) This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Snapshot. PDO::SQLSRV_TXN_SERIALIZABLE (integer) This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Serializable. PDO::SQLSRV_ENCODING_BINARY (integer) Specifies that data is sent/retrieved as a raw byte stream to/from the server without performing encoding or translation. This constant can be passed to PDOStatement::setAttribute, PDO::prepare, PDOStatement::bindColumn, and PDOStatement::bindParam. PDO::SQLSRV_ENCODING_SYSTEM (integer) Specifies that data is sent/retrieved to/from the server as 8-bit characters as specified in the code page of the Windows locale that is set on the system. Any multi-byte characters or characters that do not map into this code page are substituted with a single byte question mark (?) character. This constant can be passed to PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn, and PDOStatement::bindParam. PDO::SQLSRV_ENCODING_UTF8 (integer) Specifies that data is sent/retrieved to/from the server in UTF-8 encoding. This is the default encoding. This constant can be passed to PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn, and PDOStatement::bindParam. PDO::SQLSRV_ENCODING_DEFAULT (integer) Specifies that data is sent/retrieved to/from the server according to PDO::SQLSRV_ENCODING_SYSTEM if specified during connection. The connection's encoding is used if specified in a prepare statement. This constant can be passed to PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn, and PDOStatement::bindParam. PDO::SQLSRV_ATTR_QUERY_TIMEOUT (integer) A non-negative integer representing the timeout period, in seconds. Zero (0) is the default and means no timeout. This constant can be passed to PDOStatement::setAttribute, PDO::setAttribute, and PDO::prepare. PDO::SQLSRV_ATTR_DIRECT_QUERY (integer) Indicates that a query should be executed directly, without being prepared. This constant can be passed to PDO::setAttribute, and PDO::prepare. For more information, see » Direct and Prepared Statement Execution.

Table of Contents

  • PDO_SQLSRV DSN — Connecting to MS SQL Server and SQL Azure databases
An updated driver compatible with both PHP 7.0 and Linux is available on the PHP-7.0-Linux branch of https://github.com/Microsoft/msphpsql/
This is more up to date and supports some additional features over the ODBC / DBLIB drivers.
It is currently considered an 'Early Technical Preview' and hence has some limitations, but in my experience it has been stable.
As of 12/12/2014, Microsoft has officially released Version 3.1.
Support for 5.5 has 4 drivers
php_pdo_sqlsrv_55_nts.dll
php_pdo_sqlsrv_55_ts.dll
php_sqlsrv_55_nts.dll
php_sqlsrv_55_ts.dll
Note: Version 3.1 now supports PHP 5.5 and requires Microsoft ODBC Driver 11 (or higher) 
You can downlod the new driver from 
http://www.microsoft.com/en-us/download/details.aspx?id=20098
SQLSRV 3.2 is now available from Microsoft that supports PHP 5.6
http://www.microsoft.com/en-us/download/details.aspx?id=20098
Watch out!
If you use PDO SQLSRV on windows 7, using 32 bit php on XAMMP, you might encounter driver problems : "This extension requires the Microsoft ODBC Driver 11 for SQL Server to communicate with SQL Server"
The reason, Microsoft 32-bit ODBC driver doesn't install properly on 64-bit Windows 7.
Check the solution to PDO SQLSRV driver problem here in StackOverflow
https://stackoverflow.com/a/46245990/1330248
Note that Microsoft has not been updating this driver for some time. There are unofficial builds for PHP 5.5 based on patches against the source code head revision (from codeplex), and unconfirmed rumors that getting the source to build with PHP 5.6 is difficult.
Official versions have been released only for PHP 5.2, 5.3 and 5.4.
 
These problems probably apply to both the PDO driver (pdo_sqlsrv) and the non-PDO driver (sqlsrv extension), since they seem to be built and released together.

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)