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

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

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

Код: 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
04.12.2013, 10:49
    #38488468
AR®
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры MySQL "портит" форму
В общем, дело тёмное.
Проблему решил следующим образом.
После отработки процедуры в обязательном порядке зову mysql_close($Connect), а для дальнейших операций с базой создаю новое соединение.

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


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