以前在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 扩展!
- 将扩展文件(php_sqlsrv.dll或php_sqlsrv_ts.dll)放入PHP 扩展目录。
-
修改 php.ini 文件以包含扩展名。取决于要加载的驱动程序版本(非线程安全或线程安全),您将需要添加其中一个以下行转到 php 的动态扩展部分.ini文件:
扩展名=php_sqlsrv.dll
扩展名=php_sqlsrv_ts.dll
-
重新启动 Web 服务器。
-
享受原料药
完成所有操作后,您必须配置 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 实现更好。