SQL Server - 使用 PHP 访问 MS SQL


sql server - Using PHP to access MS SQL

以前在Silverlight中开发过应用程序,现在我们正在转向HTML5。 作为向更开源方法发展的一部分,我正在考虑使用PHP链接到我们的MSSQL数据库而不是.NET。 有什么充分的理由不采取这种方法吗?(我们必须保留MSSQL和Windows)

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

无论如何,您应该首先加载驱动程序,如官方SQL服务器站点所说的MICROSOFT

您可以在Microsoft下载中心下载 SQL Server 2005 Driver for PHP。下载中包括两个.dll文件:php_sqlsrv.dll和php_sqlsrv_ts.dll。加载 SQL Server 2005 Driver for PHP 类似于加载任何 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. 享受原料药

完成所有操作后,您必须配置 SQL Server 2005+ 驱动程序 PHP 有三个配置选项:

  • 日志子系统使用此选项可打开或关闭子系统的日志记录。这默认设置为 SQLSRV_LOG_SYSTEM_OFF(日志记录由默认值)。
  • 日志严重性使用此选项可指定在打开日志记录后要记录的内容上。默认设置为 SQLSRV_LOG_SEVERITY_ERROR(只有错误默认情况下,在启用日志记录后进行记录)。
  • 警告返回错误 默认情况下,PHP 驱动程序将 SQLSRV 函数生成的警告视为错误。使用警告返回为错误选项来更改此行为。默认此选项的设置为 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。

注意:必须在 $connectionOptions 参数中设置 UID 和 PWD 选项,才能使用 SQL Server 身份验证登录到服务器。

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

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

从php到SQL服务器的驱动程序一开始有点不稳定,但只要你得到最新的驱动程序,它就非常健壮。

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