【发布时间】:2012-08-30 06:16:21
【问题描述】:
我在尝试连接到我的 MSSQL 2012 Express 数据库时遇到了严重问题,PHP5 在 Apache 上运行。 作为测试设置,我刚刚在 Windows 7 机器上安装了一个带有 PHP 5.4.4 和 Apache 的 XAMPP。
我的 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 还是数据库错误??
【问题讨论】:
-
致命错误是 PHP 错误。 PHP 找不到函数
mssql_connect()。找出(使用phpinfo())您的 php.ini 文件所在的位置。找到条目extension=php_mssql.dll并取消注释。保存文件,重新启动 apache 并重试。 -
顺便说一句;如果你真的在使用 XAMPP,这意味着你使用的是 MySQL 而不是 MSSQL...
-
有关更多信息,请查看php.net/manual/en/mssql.setup.php 和本网站上的用户贡献说明。默认XAMPP没有开启这个功能
-
@Lex:我已取消注释 php_mssql.dll 但我的 /php/ext/ 文件夹中不存在 mssql.dll 文件,认为这可能是它给出致命错误的原因吗?是的,我知道 MySQL 是 XAMPP 包的一部分,但我已经在同一台服务器上安装了 MSSQL 2012 Express 服务器(它是一个测试服务器环境),因为我运行了另一个依赖于 MSSQL 的 BI 系统。我的测试服务器上的 MySQL 没有运行。
-
很有可能。看看你是否可以从某个地方下载 dll(尝试谷歌搜索“php_mssql.dll windows php [your phpversion]”)
标签: php sql-server