使用PHP访问MS SQL

问题描述:

先前在Silverlight中开发了应用程序后,我们现在转向使用HTML5。作为迈向更开放源代码方法的一部分,我正在考虑使用PHP链接到我们的MSSQL数据库而不是.NET。有没有理由不采取这种方法? (我们必须保持MSSQL和Windows)使用PHP访问MS SQL

+0

对于*的问答格式,这不是一个合适的问题。请参阅http://*.com/faq#dontask – Crontab

根据PHP.Net有很多函数来处理MSSQL数据库。

反正你应该首先加载驱动程序为MICROSOFTOfficial SQL Server Site

您可以在微软下载SQL Server 2005的驱动程序PHP下载中心。下载中包含两个.dll文件:php_sqlsrv.dll和php_sqlsrv_ts.dll。 加载PHP的SQL Server 2005驱动程序与加载任何PHP扩展相似!

  1. 将扩展文件(php_sqlsrv.dll或php_sqlsrv_ts.dll)放入 PHP扩展目录中。
  2. 修改php.ini文件以包含扩展名。 根据您要加载的驱动程序版本为 (非线程安全或线程安全),您需要将 以下行之一添加到您的php.ini文件的动态扩展部分:

    延长= php_sqlsrv.dll

    延长= php_sqlsrv_ts.dll

  3. 重新启动Web服务器。

  4. 享受API

后万物,你必须配置在SQL Server 2005 +驱动程序PHP有三个配置选项:

  • LogSubsystems 使用此选项打开或关闭子系统的日志记录。 的默认设置是SQLSRV_LOG_SYSTEM_OFF(日志由默认的 关闭)。
  • LogSeverity 使用此选项可以指定日志记录被打开后要记录的内容 。默认设置为SQLSRV_LOG_SEVERITY_ERROR(仅在打开日志记录后,默认情况下会记录 )。
  • WarningsReturnAsErrors默认情况下,PHP的驱动程序 将sqlsrv函数生成的警告视为错误。使用 WarningsReturnAsErrors选项可更改此行为。此选项的默认设置为 设置为true。

注意此规则也有例外。例如,更改数据库上下文所生成的警告永远不会被视为错误。

在和只有几个最后的东西,你必须记住 * sqlsrv_connect *函数用于建立一个连接到服务器。

$serverName = "(local)"; 
$connectionOptions = array("Database"=>"myDatabase"); 
/* Connect using Windows Authentication. */ 
$conn = sqlsrv_connect($serverName, $connectionOptions); 
if($conn === false) 
     { die(FormatErrors(sqlsrv_errors())); } 

默认情况下,sqlsrv_connect函数使用Windows身份验证建立连接。在大多数情况下,这意味着Web服务器的进程标识或线程标识(如果Web服务器使用模拟)用于连接到服务器,而不是最终用户的标识。

sqlsrv_connect函数接受两个参数:$ serverName和$ connectionOptions(可选)。

  • $ SERVERNAME该所需参数用于指定的 到要连接的服务器的名称。在上面的代码中,建立了到本地服务器的连接 。此参数可以用 指定SQL Server实例或端口号。例如: 示例:

    $ serverName =“myServer \ instanceName”;

- 或 -

$serverName = "myServer, 1521"; 
  • $ connectionOptions此可选参数是设置在该连接上的选项键 - 值对的数组。有关
    的更多信息,请参阅产品文档中的sqlsrv_connect。

UID和PWD选项必须在$ connectionOptions参数设置为登录到SQL Server验证的服务器。

注意该示例中显示的FormatErrors函数是用于格式化错误输出的自定义函数。

+0

如果您要从网站复制粘贴内容,则应该至少包含指向源http://social.technet.microsoft.com/wiki/的链接。内容/文章/ 1258.accessing-sql-server-databases-from-php.aspx – Tchoupi

+0

ops抱歉,我编辑了 –

+1

真棒,谢谢:) – Tchoupi

我已经在高可用性生产环境中使用php(在Windows Server 2003和2008上的IIS上运行)以及Microsoft SQL Server(2008和2008R2)近2年。

从PHP到SQL服务器的驱动程序在开始时有点不稳定,但只要获得最新的驱动程序,它就非常强大。

在我的环境中,PHP和SQL Server组合的性能比.net实现要好。