Как выводить данные из хранимой процедуры sql server в php?

Пользователь

от montana_hand , в категории: PHP , 10 месяцев назад

Как выводить данные из хранимой процедуры sql server в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от akeem , 10 месяцев назад

@montana_hand 

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


Вот пример кода, демонстрирующий, как выполнить хранимую процедуру и получить данные в PHP с использованием расширения PDO:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// Подключение к базе данных
$servername = "имя_сервера";
$database = "имя_базы_данных";
$username = "имя_пользователя";
$password = "пароль";

try {
    $conn = new PDO("sqlsrv:server=$servername;database=$database", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e) {
    die("Connection failed: " . $e->getMessage());
}

// Выполнение хранимой процедуры
try {
    $stmt = $conn->prepare("EXEC имя_хранимой_процедуры");
    $stmt->execute();

    // Получение результата
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    // Вывод данных
    foreach ($result as $row) {
        echo "Название: " . $row['название'] . "";
        echo "Описание: " . $row['описание'] . "";
    }
    
} catch(PDOException $e) {
    echo "Ошибка выполнения процедуры: " . $e->getMessage();
}

// Закрытие соединения
$conn = null;


В приведенном примере используется расширение PDO для соединения с базой данных и выполнения запроса. Замените имя_сервера, имя_базы_данных, имя_пользователя, пароль на соответствующие значения для вашей конфигурации.


Вместо имя_хранимой_процедуры укажите имя вашей хранимой процедуры.


После выполнения процедуры результаты сохраняются в переменную $result. Далее вы можете использовать цикл foreach для обработки полученных данных и их вывода, как показано в примере.