Задать вопрос
@Niko11a

Как в PHP правильно организовать коннект к БД mssql?

Привет. Начал изучать PHP. Что бы как-то практиковаться, решил сделать на работе для себя небольшой портал. Помогите, пожалуйста, разобраться, как корректно организовать коннект и дисконнект к БД ms sql.
Суть в следующем: Нужно написать страничку, типа дашборда. Туда вывожу данные из таблиц на удаленном сервере. Обычно они из разных таблиц, либо много разных условий. То есть на странице есть таблицы, графики и в каждой ячейке цифра из разных таблиц на сервере (count, sum из БД).

Начал делать так:

<td>
$serverName = "xxxxx.xxxxxx.net";
$connectionInfo = array( "Database"=>"xxx", "UID"=>"admin", "PWD"=>"pass", "CharacterSet" => "UTF-8");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}

$stmt = sqlsrv_query( $conn, $sqlInClose );
if( $stmt === false) {
die( print_r( sqlsrv_errors(), true) );
}

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) ) {
$rowResult = $row[0];
}

$stmt = sqlsrv_query( $conn, $sql2Month );
if( $stmt === false) {
die( print_r( sqlsrv_errors(), true) );
}

while( $row1 = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) ) {
$rowResult1 = $row1[0];
}
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
echo "$rowResult1";
?></td>
</tr>
<tr>
<td>........</td>
<td>...........</td>
</tr>
<tr>
<td>..................</td>
<td>..................</td>
</tr>
<tr>
<td>...................</td>
<td>....................</td>
</tr>
</tbody>
</table>


То есть в каждой ячейке идет коннект к БД, получаю нужные данные дисконнект и так далее. В каждом примерно такой код, только с разным select-ом (тут это $sqlInClose, их вынес в отдельный файл.

Понимаю, что это не нормально. Сейчас уже в одном файле раз 10 идет
$conn = sqlsrv_connect( $serverName, $connectionInfo );
..........
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);


А по задумке их должно быть гораздо больше.

Пробовал в самом верху писать
<?
$serverName = "xxxxx.xxxxxx.net";
$connectionInfo = array( "Database"=>"xxx", "UID"=>"admin", "PWD"=>"pass", "CharacterSet" => "UTF-8");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}
?>


А в конце

<?
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>


Но так страница вообще не загружается, просто белый экран.

Гуглил тему и понимаю, что к БД нужно коннектиться один раз, получать все данные и закрывать сессию. Наверно должен быть файл, типа connect.php, но не могу разобраться как это сделать правильно.
Заранее спасибо.
  • Вопрос задан
  • 218 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 4
@gian_tiaga
Нужно начать с того чтобы изучить как строить СОВРЕМЕННЫЕ приложения на пхп. Ваш подход это 10 летней давности история, которую лучше забыть. Советую посмотреть например курсы от специалиста. Изучить сам пхп хорошо, потом перейти к изучению архитектурных вопросов, изучить как строятся современные фреймворки. Хоть это и не ответ на ваш вопрос, прислушайтесь
Ответ написан
Комментировать
sh3mahan
@sh3mahan
что-то вроде веб-разработчика
Посмотри в сторону PDO, достаточно простая библиотека.
Вот здесь подробно описано как с ней работать.
Ответ написан
Комментировать
Dimastik86
@Dimastik86
(isset($brain))?: die;
Комментировать
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы