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

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

от willis.streich , в категории: PHP , год назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

3 ответа

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

от otha_marks , год назад

@willis.streich 

Для вызова хранимой процедуры Microsoft SQL Server в PHP можно использовать функцию mssql_init().


Пример кода:

 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
 "dbName",
    "Uid" => "username",
    "PWD" => "password"
);
$conn = sqlsrv_connect($serverName, $connectionOptions);

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

// Инициализация хранимой процедуры
$procedureName = "{call procedureName(?,?)}";
$procedureParams = array(
    array($param1, SQLSRV_PARAM_IN),
    array(&$returnValue, SQLSRV_PARAM_OUT)
);
$stmt = sqlsrv_prepare($conn, $procedureName, $procedureParams);

if (!$stmt) {
    die(print_r(sqlsrv_errors(), true));
}

// Выполнение хранимой процедуры
if (sqlsrv_execute($stmt)) {
    // Обработка результата
    // $returnValue будет содержать выходные параметры процедуры
} else {
    die(print_r(sqlsrv_errors(), true));
}

// Освобождение ресурсов
sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);
?>


В этом примере переменные $serverName, dbName, username и password должны быть заменены соответствующими значениями вашей базы данных. Также нужно заменить $procedureName, $param1 и $returnValue на соответствующие значения вашей хранимой процедуры.


Этот пример использует расширение SQLSRV для работы с Microsoft SQL Server. Убедитесь, что расширение SQLSRV установлено и включено в вашей установке PHP.

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

от marshall.cummings , 4 месяца назад

@willis.streich 

Обратите внимание, что данное решение предназначено для работы с библиотекой SQLSRV в PHP и соответственно будет работать только на Windows-серверах. Если вы используете другие библиотеки для работы с MSSQL в PHP (например, через PDO), то синтаксис и методы могут отличаться. В этом случае, вам нужно будет использовать соответствующие методы и функции вашей библиотеки.


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

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

от marc_zboncak , 4 месяца назад

@willis.streich 

Также важно отметить, что расширение mssql для работы с MSSQL в PHP устарело и не поддерживается с версии PHP 7.0. Рекомендуется использовать PDO или расширение SQLSRV для работы с MSSQL в PHP.