PHP를 통해 msSQL 데이터베이스에 연결할 수 없습니다.


Answers

마지막 오류 메시지를 얻으려면 mssql_get_last_message() 를 호출하십시오.

$dbhandle = mssql_connect($myServer, $myUser, $myPass)
  or die("Couldn't connect to SQL Server on $myServer. Error: " . mssql_get_last_message());
Question

나는 msSQL 2005 db에 접근하기 위해 현재 코드를 사용하고있다 :

<?php
$myServer = "[server]";
$myUser = "[username]";
$myPass = "[password]";
$myDB = "[db]";

//connection to the database
$dbhandle = mssql_connect($myServer, $myUser, $myPass)
  or die("Couldn't connect to SQL Server on $myServer");

//select a database to work with
$selected = mssql_select_db($myDB, $dbhandle)
  or die("Couldn't open database $myDB");

//declare the SQL statement that will query the database
$query = "SELECT id, name, year ";
$query .= "FROM cars ";
$query .= "WHERE name='BMW'";

//execute the SQL query and return records
$result = mssql_query($query);

$numRows = mssql_num_rows($result);
echo "<h1>" . $numRows . " Row" . ($numRows == 1 ? "" : "s") . " Returned </h1>";

//display the results
while($row = mssql_fetch_array($result))
{
  echo "<li>" . $row["id"] . $row["name"] . $row["year"] . "</li>";
}
//close the connection
mssql_close($dbhandle);
?>

다음을 반환합니다.

Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: XXXXXXX in D:\xxxxx.xxx\xxxx.php on line 16
Couldn't connect to SQL Server on XXXXXXX

문제가 뭐라고 생각하니?




먼저 브라우저에서 phpinfo() 와 같은 것을 시도하십시오. 허용되는 데이터베이스를 확인하십시오.

mssql 과 같은 것이 보이지 않으면 구성되지 않습니다. 그래서 구성 될 odbc_connect() 를 사용하십시오 ... 연결 문자열은 다음과 같습니다 :

$server = '';
$user = '';
$password = '';
$database = '';
$connection = odbc_connect("Driver={SQL Server Native Client `11.0};Server=$server;Database=$database;", $user, $password);`

mssql 2005 또는 2008을 사용하는 경우 d 11.0을 10.0으로 변경하고 다른 버전의 경우 mssql 버전으로 변경하십시오.




localhost를 사용하지 않는 경우 자격 증명이 잘못되었습니다. 서버의 IP를 안전한 목록에 추가하십시오.




늦은 응답이지만 누군가를 도울 수 있습니다. 우리는 거의 거기에 있습니다. 연결 매개 변수에 문제가 있습니다. 아마 servername에 IP:port 를 부여해야합니다 IP:port

servername :: MS SQL 서버. 예 : hostname:port (Linux), or hostname,port (Windows).

서버 이름은 "server \ instance"이어야합니다. 인스턴스는 1433과 다른 특정 포트 주소 이상입니다. mssql 서버에서 포트를 검색 한 다음 다음을 사용하여 연결을 시도하십시오. ip:port

나를 위해 완벽하게 작동하는 예제 코드 ::

    ini_set('display_errors', '1');
    // $myServer = "winsrv22.somedns.co.uk:22320";//this style works as well
    $servername = "123.21.47.23:22320";
    $myUser = "UserName";
    $myPass = 'xxxxxxxx';
    $myDB = "[database]"; 

    //connection to the database
    $dbhandle = mssql_connect($servername, $myUser, $myPass)
        or die("Couldn'tt connect to SQL Server on $myServer"); 
    if($dbhandle) {
     echo "Success, Connected\r\n";
    } else {
        echo "problem :( \r\n";
    }

희망이 좀 도움이 :) 행복한 코딩!




Links