Подключение к локальному SQL Server (IP-адрес) через браузер PHP - PullRequest
0 голосов
/ 25 января 2019

Я занимаюсь разработкой сайта на HTML, PHP и т. Д. На виртуальном хостинге.У меня есть локальный компьютер с SQL Server и SSMS 2014 с информацией, которую мне нужно получить на этом веб-сайте.На моем общем хосте у меня есть следующие настройки php: enter image description here

Драйверы ODBC: enter image description here

Я уже подключился через ipадрес в БД на другом локальном компьютере, но когда я пытаюсь подключиться в браузере, я получаю ту же ошибку снова и снова.

Я пытался с sqlsrv_connect: (я не показываю ip по соображениям безопасности)

$serverName = "127.0.0.1"; 
$uid = "admin";   
$pwd = "admin***";  
$databaseName = "mydb"; 

$connectionInfo = array( "UID"=>$uid,                            
                     "PWD"=>$pwd,                            
                     "Database"=>$databaseName); 

// Connect using SQL Server Authentication. 
$conn = sqlsrv_connect( $serverName, $connectionInfo);  

if( ($errors = sqlsrv_errors() ) != null) {
  foreach( $errors as $error ) {
    echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
    echo "code: ".$error[ 'code']."<br />";
    echo "message: ".$error[ 'message']."<br />";
  }
}
$tsql = "SELECT mor1_emp,mor2_emp,mor3_emp FROM rh_company";  


sqlsrv_close( $conn);  

Я пытался с PDO odbc:

try {
    $dsn = "mysql:dbname=testdb;host={$db_host1}";
    $connection = new PDO("odbc:Driver={SQL Server};Server=127.0.0.1;Database=mydb; Uid=admin;Pwd=admin***;");
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
}

Я пытался с PDO mssql:

try {
  $hostname = "127.0.0.1";            //host
  $dbname = "mydb";            //db name
  $username = "admin";            // username like 'sa'
  $pw = "admin***";                // password for the user

  $dbh = new PDO ("mssql:host=$hostname;dbname=$dbname","$username","$pw");
} catch (PDOException $e) {
  echo "Failed to get DB handle: " . $e->getMessage() . "\n";
}
   $stmt = $dbh->prepare("SELECT * FROM table");
   $stmt->execute();
   while ($row = $stmt->fetch()) {
     print_r($row);
   }

Ошибка, которую я всегда получаю с sqlsrv_connect:

SQLSTATE: IMSSP
code: -49
message: This extension requires the Microsoft ODBC Driver 11 or 13 for SQL 
Server. Access the following URL to download the ODBC Driver 11 or 13 for SQL Server for x64: http://go.microsoft.com/fwlink/?LinkId=163712
SQLSTATE: IM002
code: 0
message: [unixODBC][Driver Manager]Data source name not found, and no default driver specified

С PDO (ODBC):

SQLSTATE[IM002] SQLDriverConnect: 0 [unixODBC][Driver Manager]Data source name not found, and no default driver specified

С PDO (mssql): не удалось найти драйвер

...