@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, но не могу разобраться как это сделать правильно.
Заранее спасибо.
  • Вопрос задан
  • 202 просмотра
Пригласить эксперта
Ответы на вопрос 4
@gian_tiaga
Нужно начать с того чтобы изучить как строить СОВРЕМЕННЫЕ приложения на пхп. Ваш подход это 10 летней давности история, которую лучше забыть. Советую посмотреть например курсы от специалиста. Изучить сам пхп хорошо, потом перейти к изучению архитектурных вопросов, изучить как строятся современные фреймворки. Хоть это и не ответ на ваш вопрос, прислушайтесь
Ответ написан
sh3mahan
@sh3mahan
что-то вроде веб-разработчика
Посмотри в сторону PDO, достаточно простая библиотека.
Вот здесь подробно описано как с ней работать.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Etton Казань
от 100 000 ₽
Смокинг Казань
от 120 000 до 150 000 ₽
Plesk Новосибирск
от 150 000 до 300 000 ₽
10 сент. 2021, в 14:58
200 руб./в час
16 сент. 2021, в 23:48
3000 руб./за проект
16 сент. 2021, в 22:10
1500 руб./в час