从 PHP Framework Kohana 连接到 MSSQL
Connection to MSSQL from PHP Framework Kohana
我正在尝试将 php 应用程序(使用 Kohana 框架)与 Microsoft SQL 服务器连接,但它失败了!!!
技术背景:
- Microsoft Windows Server 2012 R2 标准版。
- 框架 Kohana v2.3.4.
- XAMPP 服务器 v1.7.1:
- Apache v2.2.11.
- PHP 5.2.9.
- Microsoft SQL Server 2012(速成版)。
- Microsoft .NET Framework v4.0.20219.42000.
问题总结:
- 看来mssql驱动是可以的!我检查了文件夹“...\xampp\php\ext\”是否有 "php_mssql.dll" 以及 php.ini 文件中是否有它的引用...是的!!!一切正常!
- 我在 Microsoft SQL Server Management Studio 中没有任何身份验证问题(我使用的是 SQL 服务器身份验证)。1
- 我在 Kohana 数据库配置中遇到问题(我使用的是与 Management Studio 相同的身份验证数据)。我在其中添加了以下内容:
$config['testing'] = array
(
'benchmark' => 正确,
'persistent' => 正确,
'connection' => 数组
(
'type' => 'mssql',
'user' => 'username',
'pass' => 'password',
'host' => 'SERVERNAME\SQLEXPRESS',
'port' => 错误,
'socket' => 错误,
'database' => 'database_name'
),
'character_set' => 'utf8',
'table_prefix' => '',
'object' => 正确,
'cache' => 错误,
'escape' => 正确
);
但是,网络浏览器的答案是 "mssql_connect() [function.mssql-connect]: Unable to connect to server: SERVERNAME\SQLEXPRESS"。
我尝试更改主机名(我认为问题出在那里):没有'\SQLEXPRESS'并使用机器IP地址。
我尝试在 kohana 数据库配置中将用户设置为 FALSE 并传递属性。
重要说明:本机为测试服!我可以将应用程序与开发机器中的 sql 服务器连接起来。所以,我尝试将开发机器应用程序与测试机器数据库服务器连接起来,但我得到了同样的错误。测试机和开发机之间的独特技术差异在于我使用的开发机 SQL SERVER 2016 和 Windows 10。在开发机中,我在 Management Studio 中使用 "Windows Authentication" 并且我在 kohana 数据库配置中将用户 ans 设置为 FALSE。
可能是什么问题?谢谢!
解决方案是设置文件流属性(在Sql服务器配置管理器->SQL服务器服务->右键单击SQL服务器(SQLEXPRESS) -> 属性 -> FILESTREAM),为 Transact-SQL 和文件 IO 访问启用文件流,并允许远程客户端访问 FILESTREAM 数据。
我正在尝试将 php 应用程序(使用 Kohana 框架)与 Microsoft SQL 服务器连接,但它失败了!!!
技术背景:
- Microsoft Windows Server 2012 R2 标准版。
- 框架 Kohana v2.3.4.
- XAMPP 服务器 v1.7.1:
- Apache v2.2.11.
- PHP 5.2.9.
- Microsoft SQL Server 2012(速成版)。
- Microsoft .NET Framework v4.0.20219.42000.
问题总结:
- 看来mssql驱动是可以的!我检查了文件夹“...\xampp\php\ext\”是否有 "php_mssql.dll" 以及 php.ini 文件中是否有它的引用...是的!!!一切正常!
- 我在 Microsoft SQL Server Management Studio 中没有任何身份验证问题(我使用的是 SQL 服务器身份验证)。1
- 我在 Kohana 数据库配置中遇到问题(我使用的是与 Management Studio 相同的身份验证数据)。我在其中添加了以下内容:
$config['testing'] = array
(
'benchmark' => 正确,
'persistent' => 正确,
'connection' => 数组
(
'type' => 'mssql',
'user' => 'username',
'pass' => 'password',
'host' => 'SERVERNAME\SQLEXPRESS',
'port' => 错误,
'socket' => 错误,
'database' => 'database_name'
),
'character_set' => 'utf8',
'table_prefix' => '',
'object' => 正确,
'cache' => 错误,
'escape' => 正确
);
但是,网络浏览器的答案是 "mssql_connect() [function.mssql-connect]: Unable to connect to server: SERVERNAME\SQLEXPRESS"。
我尝试更改主机名(我认为问题出在那里):没有'\SQLEXPRESS'并使用机器IP地址。
我尝试在 kohana 数据库配置中将用户设置为 FALSE 并传递属性。
重要说明:本机为测试服!我可以将应用程序与开发机器中的 sql 服务器连接起来。所以,我尝试将开发机器应用程序与测试机器数据库服务器连接起来,但我得到了同样的错误。测试机和开发机之间的独特技术差异在于我使用的开发机 SQL SERVER 2016 和 Windows 10。在开发机中,我在 Management Studio 中使用 "Windows Authentication" 并且我在 kohana 数据库配置中将用户 ans 设置为 FALSE。
可能是什么问题?谢谢!
解决方案是设置文件流属性(在Sql服务器配置管理器->SQL服务器服务->右键单击SQL服务器(SQLEXPRESS) -> 属性 -> FILESTREAM),为 Transact-SQL 和文件 IO 访问启用文件流,并允许远程客户端访问 FILESTREAM 数据。