【问题标题】:Can't connect to localhost SQL server 2012 with php无法使用 php 连接到 localhost SQL server 2012
【发布时间】:2014-11-07 20:20:09
【问题描述】:

您好,我的本地数据库的 php 连接有一个大问题。

我正在跑步: Windows 服务器 2008 sp 1。 2012 年的 SQL 服务器。 我的 SQL 服务器名称:LRE-XP-VS2003\SQLEXPRESS。 (状态正在运行)

这就是我尝试连接的方式

$server = 'localhost'; //or 127.0.0.1
$login = 'sa';
$passwd = 'my_passwd';
$database = 'ms4033';
$port = '49717';

$con = mysqli_connect ( $server , $login, $passwd, $database, $port );

if (!$con) {
  die("Connection error: " . mysqli_connect_errno());
 }

我得到的结果是在浏览器中旋转加载按钮,经过很长时间“内部服务器错误 - FastCGI 进程超出了配置的活动超时”

对于我在HKEY_LOCAL_MACHINE 中签入的端口号,也直接在数据库中签入

 USE master
 GO
 XP_READERRORLOG 0, 1, N'Server is listening'
 GO

在 SQL Server 配置管理器中也是如此。 如果没有端口号,我会得到“无法建立连接,因为目标机器主动拒绝它”或“连接错误:2002”

我尝试禁用我的防火墙,但没有帮助。

我也在运行 asp .net,但奇怪的是连接工作正常 用这个:

<add key="connectionString" value="server=LRE-XP-VS2003\SQLEXPRESS;database=ms4033;packet size=4096;user id=sa;password=my_passw" />

我错过了什么吗?

$server = 'localhost';$server = 'LRE-XP-VS2003\SQLEXPRESS'; 有什么区别?

非常感谢。

【问题讨论】:

    标签: php asp.net sql-server localhost


    【解决方案1】:

    查看this 文章。您需要使用 MS SQL 连接,而不是 MYSQL

    <?php
    // Server in the this format: <computer>\<instance name> or 
    // <server>,<port> when using a non default port number
    $server = 'KALLESPC\SQLEXPRESS';
    
    // Connect to MSSQL
    $link = mssql_connect($server, 'sa', 'phpfi');
    
    if (!$link) {
        die('Something went wrong while connecting to MSSQL');
    }
    ?>* 
    

    【讨论】:

    • 谢谢,我发现函数sqlsrv_connect();对我来说将是最好的选择。它还不行。但我希望它会很快:-)
    • 终于!我将我的 php 降级为 php5.3。从 Microsoft 下载 sqlsrv .dll。 (它仅支持 phps5.3 或更低版本)并且它似乎正在工作:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    相关资源
    最近更新 更多