【发布时间】:2015-12-15 14:38:58
【问题描述】:
我正在运行 Windows 7(32 位)并安装了 Apache 2.2 和 PHP 5.3.1 线程安全。我单独安装了这些,因为我之前尝试过 WAMP 捆绑包并且不喜欢它,因为我发现它有问题。 apache 和 PHP 组件运行良好。我将 apache 端口设置为 7777,当我转到 URL http://localhost:7777/phpinfo.php 时,会出现 PHP 信息。我还可以创建一个基本的 PHP Hello World,它可以在浏览器中查看。我需要连接到 SQL Server 2005 实例来学习项目中的 PHP。我已经下载了 SQLSRV30.EXE 并提取了文件并将 DLL 的 php_pdo_sqlsrv_53_ts.dll 和 php_sqlsrv_53_ts.dll 放在文件夹 C:\PHP\ext 中,然后将以下条目放在 php.ini 文件中
extension=php_pdo_sqlsrv_53_ts.dll
extension=php_sqlsrv_53_ts.dll
重新启动 Apache 并且在 phpinfo 列表中它没有说明任何 SQL Server 属性。当我尝试运行浏览器状态下方的示例时 - 致命错误:调用未定义的函数 sqlsrv_connect()。我在 stackoverflow 上找到了几个示例,但它们涉及使用 wamp。请问我在这里做错了什么?
更新:我实际上为 PHP 安装了 NetBeans,并在 index.php 页面中使用下面相同的代码创建了一个新项目,当我运行它时,错误是一样的
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Check SQL Server Connection</title>
</head>
<body>
<?php
$serverName = "IT90334\SQLEXPRESS";
$connectionInfo = array('Database' => 'AdventureWorks');
$conn = sqlsrv_connect($serverName, $connectionInfo);
if ($conn) {
echo "Connection Established.<br />";
} else {
echo "Something went wrong while connecting to MSSQL.<br />";
die(print_r(sqlsrv_errors(), true));
}
?>
</body>
</html>
【问题讨论】:
-
phpinfo()列出的 php.ini 文件的路径是否与您更改的 ini 文件匹配? -
您的 PHP 错误日志中是否有任何启动错误?
-
@MattGibson 是的。我检查了列出的文件在 C:\PHP\php.ini 中,这就是我改变的那个
-
@danjam 当我取消注释 php.ini 中的参数 error_log = php_errors.log 时,apache web 服务器无法重新启动
-
@MattGibson 我已经取得了进展,并在浏览器中显示了已建立的连接,但现在尝试检索一些数据,netbeans 不喜欢“sqlsrv_query”并指出它是一个拼写错误的词。这是我的代码 $query = "SELECT Name FROM Production.Location" // 执行查询并返回记录 $result = sqlsrv_query($query)
标签: php apache sql-server-2005