2

我在尝试连接到我的 MSSQL 2012 Express 数据库时遇到严重问题,PHP5 在 Apache 上运行。作为测试设置,我刚刚安装了一个带有 PHP 5.4.4 的 XAMPP 和在 Windows 7 机器上运行的 Apache。

我的 PHP 代码(phpmssql_genxml.php):

$connection = mssql_connect('192.168.40.150', $username, $password);
if (!$connection) {  die('Not connected : ' . mssql_get_last_message());} 


$db_selected = mssql_select_db($database, $connection);
if (!$db_selected) {
  die ('Can\'t use db : ' . mssql_get_last_message());
} 


$query = "SELECT * FROM Cust WHERE 1";
$result = mssql_query($query);
if (!$result) {  
  die('Invalid query: ' . mssql_get_last_message());
} 

尝试进入站点时的输出:

Fatal error: Call to undefined function mssql_connect() in C:\xampp\htdocs\phpmssql_genxml.php on line 13

即使我尝试将用户名和密码硬编码到字符串中,我仍然得到相同的结果。在谷歌上搜索了很多,但还没有找到解决我的问题的帖子:/已经为数据库实例管道启用了 TCP/IP,甚至尝试为其分配一个特定的 TCP 端口。在 Win7 防火墙中创建了一条规则,允许所有流量到标准端口 1433。仍然没有运气。

any1有什么想法吗?“致命错误”部分是什么意思?尝试连接时是 Apache 错误、PHP 还是数据库错误?

4

2 回答 2

2

您的 PHP 设置中缺少 MSSQL 驱动程序。假设您具有页面上提到的所需系统配置,请从此处下载。

根据他们的说明进行设置:

  1. 将 SQLSRV30.EXE 下载到临时目录
  2. 运行 SQLSRV30.EXE
  3. 出现提示时,输入 PHP 扩展目录的路径
  4. 解压文件后,阅读 SQLSRV30_Readme.htm 文件的安装部分以了解后续步骤

如果您打算使用 MSSQL,我还建议您使用标准的 Apache + PHP 安装,而不是任何 *AMP 包。

于 2012-09-06T05:37:33.377 回答
1

您不需要使用 SQLSRV30,因为这不是我需要的解决方案,尽管有些人可能会觉得它很有用。我有一个运行 XAMPP + php5.5.9 + MSSQL2012 的本地开发环境,我需要使用 mssql 函数,因为这就是我们在服务器上使用的。所以我使用 freetds 并且“幸运地”发现了这个:

https://moodle.org/mod/forum/discuss.php?d=232844

其中一位用户已经为我的 php 版本编译了 php_dblib.dll TS 和 NTS,这足以说明我一切正常,并使用了我们开发团队习惯的所有 MSSQL 函数。始终可以编译 mssql 支持的扩展。

于 2014-05-23T11:05:34.523 回答