mssql_connect()与PHP5和MSSQL2012 Express

时间:2012-09-05 13:46:20

标签: php sql-server

我在尝试连接到我的MSSQL 2012 Express数据库时遇到了很多问题,在Apache上运行PHP5。 我有一个测试设置刚安装了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还是数据库错误?

2 个答案:

答案 0 :(得分:2)

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

根据他们的指示进行设置:

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

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

答案 1 :(得分:1)

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

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

其中一个用户已经为我的php版本编译了php_dblib.dll TS和NTS就足以说我已经完成了所有工作并使用了我们的开发团队习惯的所有MSSQL函数。可以始终编译mssql支持的扩展名。