powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вызов хранимой процедуры MySQL "портит" форму
2 сообщений из 2, страница 1 из 1
Вызов хранимой процедуры MySQL "портит" форму
    #38487863
AR®
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени!

На странице есть форма, на которой ряд комбобоксов заполняются значениями из таблиц базы (каждый из своей).
При первоначальном открытии страницы всё хорошо.

Затем по нажатию отрабатывает код, зовущий, среди прочего, хранимую процедуру:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
$SQLStmt = "call proc_sp(/*параметры*/);";

if(!$qwery = mysql_query($SQLStmt, $Connect))
     include('mysqlerr.php');
else
{
    while($rset=mysql_fetch_array($qwery))
   {
        if($rset[0] <= 0)
             echo "Ошибка при записи в базу данных! Код ошибки ".$rset[0].": ".$rset[1]."<br>";
        else
	{
	     echo "<br>Успешно создана запись с номером ".$rset[0].".<br><br>";
	     exit();
	}
    }
}



Хранимая процедура осуществляет проверку допустимости полученных данных, и, если все хорошо, пишет в базу и возвращает RecordSet из 1 записи вида

123, ''
(положительное число - идентификатор новой записи и пустая строка)

а если обнаружена ошибка, то RecordSet из 1 записи вида

-3, 'Описание ошибки'
(отрицательное число - идентификатор ошибки и строка - описание ошибки)

Как таковая процедура работает.

Проблема в том, что при повторном открытии страницы с формой (после обнаружения ошибки процедурой) дело доходит до первого заполняемого из базы комбобокса, в нем оказывается столько записей, сколько должно быть, но они пустые! А остальные идущие после элементы формы не рисуются вовсе, включая статические (кнопку submit).

Уже пробовал звать процедуру в отдельном коннекшене (не в том, в котором заполняют комбобоксы) и использовать отдельные переменные, не помогает.

Кто сталкивался с подобным?
...
Рейтинг: 0 / 0
Вызов хранимой процедуры MySQL "портит" форму
    #38488468
AR®
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, дело тёмное.
Проблему решил следующим образом.
После отработки процедуры в обязательном порядке зову mysql_close($Connect), а для дальнейших операций с базой создаю новое соединение.

Возможно, для вызова хранимых процедур нельзя использовать mysql_query().
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вызов хранимой процедуры MySQL "портит" форму
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]