@FurmanTania

Как через pdo dblib получить значение входного/выходного параметра?

База MSSQL.
код php:
$pdo = new \PDO("dblib:host=  ;dbname= ;charset=utf8", $login, $password );
$pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
$id = 0;
$name = 'текст';
$stm = $pdo->prepare(" EXEC   [dbo].[SAVE]    :id, :name  "); 
$stm->bindParam(":id", $id,\PDO::PARAM_INT|\PDO::PARAM_INPUT_OUTPUT , 4);
$stm->bindParam(":name", $name, \PDO::PARAM_STR, 255);
var_dump($stm->execute()); //true
var_dump($stm2->fetchAll(\PDO::FETCH_OBJ));

Как мне вернуть $id ( он является вход/выход параметром ) ?
  • Вопрос задан
  • 223 просмотра
Решения вопроса 1
tsklab
@tsklab Куратор тега SQL Server
Здесь отвечаю на вопросы.
В хранимой процедуре вначале укажите SET NOCOUNT ON.
Если не получится, возвращайте ваши параметры через SELECT

К сожалению изменять процедуру нет прав
Тогда передайте тому, у кого есть права: INPUT_OUTPUT does not work.

Или создайте свою:
CREATE PROCEDURE SaveTania @ID INT, @NAME VARCHAR(255) 
AS BEGIN
  SET NOCOUNT ON
  EXECUTE [dbo].[SAVE] @ID, @NAME
  SELECT @ID, @NAME
END
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zabudkin
@zabudkin
Инженер-системотехник, программист, админ, ТПУ!!!!
Ну вход у него 0.
А так Вам к элементарному - PDO::lastInsertId
Ответ написан
Ваш ответ на вопрос

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

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