SQLSVR并指定实例名称

时间:2015-11-26 15:42:19

标签: php sql-server

我正在使用PHP 5.5并使用SQLSVR连接到MSSQL 2008R2。 根据文件:

$server   = servername;
$database = somedatabase;
$username = someuser;
$password = somepassword;

$connInfo = array("Database"=>$database, "UID"=>$username, "PWD"=>$password);
$connTest = sqlsrv_connect( $server, $connInfo);

以上工作没有问题。

我遇到的问题是我需要指定实例名称。

$server   = servername\instancename;
$database = somedatabase;
$username = someuser;
$password = somepassword;

$connInfo = array("Database"=>$database, "UID"=>$username, "PWD"=>$password);
$connTest = sqlsrv_connect( $server, $connInfo);

上面的代码有效,但似乎没有考虑实例名称。通过这种方式,我的意思是 ALL 以下似乎可以正常工作并连接到 servername \ instancename

$server   = servername\instancename;
$server   = servername\instancenam;
$server   = servername\instancena;
$server   = servername\instancen;
$server   = servername\inst;

为什么会这样?当然,上述每一项都应该被视为不同的实例名称。我需要明确指示实例名称并测试与该服务器\ instance的连接。

即使我没有指定实例名称,我也可以连接到servername \ instancename。

提前谢谢!

修改 关于此的更多信息 我的表格有4个输入和一个测试连接按钮

<input type="text" id="EditSiteServer" name="EditSiteServer" value="Server\Instance" required>
<input type="text" id="EditSitePort" name="EditSitePort" value="1433" required>
<input type="text" id="EditSiteUsername" name="EditSiteUsername" value="Username" required>
<input type="text" id="EditSitePassword" name="EditSitePassword" value="Passwrod" required>
<button class="btn" type="button" name="connTest" id="btnconnTest" onclick="TestConnection()">Test Connection</button>

当用户点击“测试连接”按钮时,会触发此javascript / jquery函数

function TestConnection(){
    $("body").css("cursor", "progress");
    var processing = "<button class=\"btn btn-lg btn-default btn-block disabled\" type=\"button\">...checking...</button>"
    $("#testConn").html(processing);
    var s = document.forms["createSiteForm"]["InputSiteServer"].value + ", "+document.forms["createSiteForm"]["InputSitePort"].value;
    var un = document.forms["createSiteForm"]["InputSiteUsername"].value;
    var pw = document.forms["createSiteForm"]["InputSitePassword"].value;
    var db = document.forms["createSiteForm"]["InputSiteDatabase"].value;
    $.ajax({
        type: "POST",
        url: "../process/sites/check_connection.php",
        dataType:"html",
        data: { server : s, database : db, username : un, password : pw }
    }).done(function(data){
        $("#testConn").html(data);  
        $("body").css("cursor", "default");
    });
}

然后发布到check_connection.php

<?php
$server   = $_POST['server'];
$database = $_POST['database'];
$username = $_POST['username'];
$password = $_POST['password'];
//echo $server." ".$database." ".$username." ".$password."<br>";
$connInfo     = array("Database"=>$database, "UID"=>$username, "PWD"=>$password);
$connTest = sqlsrv_connect($server, $connInfo);
if( $connTest ) {
    echo "Connection succeeded";
} else {
    echo "Connection failed";
}
?>

从进一步测试开始,EditSiteServer中'\'的任何内容都可以是上述任何内容,连接也会成功。我需要明确声明实例名称。

我做错了吗?

0 个答案:

没有答案