SA-MP Forums Archive
Проблема с mysql процедурами (stored procedure) - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Проблема с mysql процедурами (stored procedure) (/showthread.php?tid=618622)



Проблема с mysql процедурами (stored procedure) - Josipo - 08.10.2016

Пытаюсь сделать запрос к хранимой процедуре.
Он успешно выполняется, но после него никакие sql -запросы не работают.
(Commands out of sync; you can't run this command now)

Находил похожие вопросы на форуме, но там давали ответ, что нужно делать store_result.
Но, насколько я понимаю, в mysql плагине версии выше R35 нет store_result.

В процедуре есть несколько SELECT, один UPDATE. Она возвращает или SELECT 1 as result, или SELECT 0 as result.

В чём может быть проблема?


Re: Проблема с mysql процедурами (stored procedure) - Josipo - 08.10.2016

В общем, вопрос снят.
Если кому интересно, то помогло использование mysql_pquery вместо mysql_tquery.


Re: Проблема с mysql процедурами (stored procedure) - Bombo - 08.10.2016

Quote:
Originally Posted by Josipo
View Post
В общем, вопрос снят.
Если кому интересно, то помогло использование mysql_pquery вместо mysql_tquery.
Это тоже не выход. Тебе нужно или считать полученный в mysql результат, или изменить процедуру таким образом, чтобы она не возвращала никаких значений. В твоём же случае ты больше не сможешь использовать mysql_pquery для других запросов.


Re: Проблема с mysql процедурами (stored procedure) - Josipo - 08.10.2016

Quote:
Originally Posted by Bombo
View Post
Это тоже не выход. Тебе нужно или считать полученный в mysql результат, или изменить процедуру таким образом, чтобы она не возвращала никаких значений. В твоём же случае ты больше не сможешь использовать mysql_pquery для других запросов.
Процедура должна возвращать значение (успешное выполнение или нет).
А можно поподробнее про "считать полученный в mysql результат" ?


Re: Проблема с mysql процедурами (stored procedure) - Bombo - 09.10.2016

PHP Code:
...
mysql_pquery(global_mysql_descriptor"тут вызов процедуры""get_proc_result");
...
public 
get_proc_result()
{
  new 
rowsfields;
  new 
Cache:my_cache;
  new 
proc_result;
  
my_cache=cache_save(global_mysql_descriptor);
  
cache_get_data(rowsfieldsglobal_mysql_descriptor);
  if(
rows>0)
  {
    
proc_result cache_get_field_content_int(0"result"global_mysql_descriptor);
  }
  if(
cache_is_valid(my_cacheglobal_mysql_descriptor))
    
cache_delete(my_cache);

Хотя бы так.

И непонятно, зачем тебе результат, если ты его не получаешь и всё равно остаёшься доволен работой своего скрипта.


Re: Проблема с mysql процедурами (stored procedure) - Josipo - 09.10.2016

Quote:
Originally Posted by Bombo
View Post
PHP Code:
...
mysql_pquery(global_mysql_descriptor"тут вызов процедуры""get_proc_result");
...
public 
get_proc_result()
{
  new 
rowsfields;
  new 
Cache:my_cache;
  new 
proc_result;
  
my_cache=cache_save(global_mysql_descriptor);
  
cache_get_data(rowsfieldsglobal_mysql_descriptor);
  if(
rows>0)
  {
    
proc_result cache_get_field_content_int(0"result"global_mysql_descriptor);
  }
  if(
cache_is_valid(my_cacheglobal_mysql_descriptor))
    
cache_delete(my_cache);

Хотя бы так.

И непонятно, зачем тебе результат, если ты его не получаешь и всё равно остаёшься доволен работой своего скрипта.
Я делаю всё примерно то же самое, кроме cache_delete().
Чуть позже проверю помогает ли этот способ.
Спасибо