Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Prizrak86
52 / 52 / 18
Регистрация: 20.03.2015
Сообщений: 278
MySQL

Получение нескольких выходных параметров из хранимой процедуры

29.09.2015, 15:41. Показов 1635. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
доброго времени суток, написал ХП, через консоль phpmyadmin работает,
из php тоже работает, но вот проблема, я получаю только один выходной результат,
а у меня их два.

Код процедуры
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE DEFINER=`root`@`localhost` PROCEDURE `new_user`(IN `user_login` VARCHAR(15), IN `user_password` VARCHAR(15), IN `org_name` VARCHAR(60), OUT `user_id` INT(20), OUT `org_id` INT(20))
    COMMENT 'не работает'
BEGIN
    DECLARE user_count,org_count INT(15);
    SELECT COUNT(*) INTO user_count FROM users WHERE users.login = user_login;
    IF (user_count = 0) THEN
        SELECT  COUNT(*) INTO org_count FROM organiz WHERE organiz.name = org_name;
        IF org_count = 0 THEN
            INSERT INTO users (login, password) VALUES (user_login, user_password);
            SELECT LAST_INSERT_ID() AS user_id;
            INSERT INTO organiz (name) VALUES (org_name);
            SELECT LAST_INSERT_ID() AS org_id;
            INSERT INTO ras (id_org, ug, red) VALUES (org_id, YEAR(NOW()), 1);
        END IF;
    END IF;
END
вот код на php
PHP
1
2
3
4
$proc = "CALL `new_user`('login_user','password_user','name_org',@user_id, @org_id);";
$result = mysqli_query($ConnectDB, $proc);
$row = mysqli_fetch_array($result);
echo implode("__", $row).'<br>';
Возвращать через индексатор по имени пробовал, одно имя существует, второе нет.
Подскажите как вернуть два параметра из ХП?

Добавлено через 1 час 33 минуты
я заметил что если в ХП написать
SQL
1
SELECT user_id , org_id;
то php умело получает эти данные,
если выполнять ХП в phpmysql то там получается две таблицы, одна с выходными данными, до второго значения которого я не могу достучаться и вторая таблица с такими же значениями, я переделал ХП без выходных параметров, код получился таким
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE DEFINER=`root`@`localhost` PROCEDURE `new_user`(IN `user_login` VARCHAR(15), IN `user_password` VARCHAR(15), IN `org_name` VARCHAR(60))
    COMMENT 'не работает'
BEGIN
    DECLARE user_count, org_count, org_id, user_id INT(15);
    SELECT COUNT(*) INTO user_count FROM users WHERE users.login = user_login;
    IF (user_count = 0) THEN
        SELECT  COUNT(*) INTO org_count FROM organiz WHERE organiz.name = org_name;
        IF org_count = 0 THEN
            INSERT INTO organiz (name) VALUES (org_name);
            SELECT LAST_INSERT_ID() INTO org_id;
            INSERT INTO users (login, password, id_organiz) VALUES (user_login, user_password, org_id);
            SELECT LAST_INSERT_ID() INTO user_id;
            INSERT INTO ras (id_org, ug, red) VALUES (org_id, YEAR(NOW()), 1);
            SELECT user_id , org_id;
        END IF;
    END IF;
END
в этом режиме я смог получить данные в php, вот код
PHP
1
2
3
    $proc = "CALL `new_user`('$login_user','$password_user','$name_org');";
    $result = mysqli_query($ConnectDB, $proc);
    $row = mysqli_fetch_array($result);
Вопрос, на кой ляд тогда нужны выходные параметры? если можно вот так все получить?!!!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.09.2015, 15:41
Ответы с готовыми решениями:

Получение параметров Хранимой процедуры с SQL Server
Создал следующую ХП: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE proverich(@id_zal_dob int) AS

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

Реализация хранимой процедуры с переменным числом входных параметров
Посоветуйте как быть! каким образом реализовать ХП с переменным числом входных парметров причем кол-во переменых теоретически может...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.09.2015, 15:41
Помогаю со студенческими работами здесь

Как можно получить список параметров хранимой процедуры?
Добрый день! Хочу из приложения на Java вызвать любую хп, которая хранится на sql server (MSSQL Server 2000 EE) Как узнать количество...

Возврат из хранимой процедуры нескольких значений
Помогите пожалуйста разобраться с тем, как из хранимой процедуры получить в С# несколько значений по одному столбцу. Есть следующая...

Выборка данных из нескольких таблиц и с хранимой процедуры
здравствуйте! второй день шарю по форумах, гуглю, а толку нет :wall: у меня есть таблицы Car, Price, Vendor, Model значения нужны из...

Программное получение параметров процедуры
Есть ли какой-то способ программно получить список параметров конкретной процедуры? Как-то из словаря, видимо, но как?

Использование выходных параметров
Подскажите пожалуйста, почему я получаю ошибки: namespace ConsoleApplication1 { class Program { static void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru