Доступ к таблице базы данных MSSQL с веб-страницы php - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь создать php-файл для доступа к базе данных mssql на моем рабочем столе и отображения данных на этой веб-странице.Веб-сервер работает под управлением Linux.Я могу получить доступ к базе данных mssql, используя аутентификацию sql или windows, через SQL managemnet studio с публичного IP без проблем.Но не могу отобразить какие-либо данные на моей странице.Порт открыт, а сервер настроен для удаленного доступа.

У меня вопрос: нужно ли устанавливать на моем компьютере драйверы php и microsoft, чтобы он работал?Мой компьютер работает с Vista 32, и я использую Microsoft SQL Server 2008 для БД.Спасибо.

МОЙ код ...

 <?php

$connectionInfo = array( "UID" => "user", "PWD" => "123456", "Database"  => "TestDB" );
$link = sqlsrv_connect( "111.222.333.444", $connectionInfo );
if( $link ) {
 echo "Connection established.<br />";
} else{
 echo "Connection could not be established.<br />";
 die( print_r( sqlsrv_errors(), true ) );
}
$sql = "SELECT *  FROM table";

$stmt = sqlsrv_query( $link, $sql );
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC ) ) {
echo $row['value']."<br />";
}

if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}
 ?>

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019
Finally i made it to work with following code...

  <?php
 $server   = "192.168.1.111,50052"; // DB SERVER IP AND PORT
$user     = "XXXXXX";
 $password = "YYYYYY";
$database = "MYdb";
   $conn = 'Driver={SQL Server Native Client 11.0};Server='.$server.';                   Database='.$database.';client_charset=UTF-8;';

 $today = date("Y-m-d"); 

 if ($conn = odbc_connect($conn, $user, $password)) {
$sql = "SELECT * FROM MTRL WHERE MY_TABLE >= '$today'";

  $result = odbc_exec($conn, $sql);
 while (odbc_fetch_row($result)) {

    $product_id = odbc_result($result, "ID");
    $name = odbc_result($result, "NAME");
    $dateModified = odbc_result($result, "INSERTDATE");
    echo $id . " - " . $product_id. " - " . $name . " - " . $dateModified .     '</br>';

   }
}

 ?>
0 голосов
/ 11 апреля 2019

Если я правильно понимаю ваш вопрос, ответ будет нет .

PHP и PHP драйвер для SQL Server должны быть установлены на этом компьютере, где работает веб-сервер.В вашем случае это машина Linux.Если все установлено и настроено правильно, вы сможете подключиться к своему экземпляру SQL Server, работающему на компьютере с Vista.Конечно, вы должны иметь возможность подключиться к любому экземпляру SQL Server, который разрешает удаленный доступ.

Вам необходимо выбрать правильную версию драйвера PHP для SQL Server на основе матрицы поддержки и следуйте инструкциям по установке.

Ваш PHP-код правильный, но хорошо проверять ошибки после каждого выполнения функции sqlsrv_:

<?php
# Connection info
$connectionInfo = array(
    "UID" => "user", 
    "PWD" => "123456", 
    "Database"  => "TestDB"
);

# Connection
$link = sqlsrv_connect("111.222.333.444", $connectionInfo);
if ($link === false) {
    echo "Connection could not be established.<br />";
    die( print_r( sqlsrv_errors(), true ) );
} else {
    echo "Connection established.<br />";
}

# Statement
$sql = "SELECT * FROM table";
$stmt = sqlsrv_query($link, $sql);
if ($stmt === false) {  
    echo "Error executing query.<br />";
    die( print_r( sqlsrv_errors(), true));
}

# Fetch data
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
    echo $row['value']."<br />";
}

# End
sqlsrv_free_stmt($stmt);
sqlsrv_close($link);
?>

Обновление: пример с использованием ODBC:

<?php
$server   = "111.222.333.444";
$user     = "user";
$password = "123456";
$database = "testDB";
$conn_string = 'Driver={SQL Server Native Client 11.0};Server='.$server.';Database='.$database.';client_charset=UTF-8;';
if ($conn = odbc_connect($conn_string, $user, $password)) {
    $sql = "SELECT * FROM table";

    $result = odbc_exec($conn, $sql);
    while (odbc_fetch_row($result)) {
        $value = odbc_result($result, "value");
        echo $value.'</br>';
    }
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...