Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Использование stored procedure в MySQL

Ответить
Настройки темы
[решено] Использование stored procedure в MySQL

Аватара для Strange_V

Старожил


Сообщения: 222
Благодарности: 29


Конфигурация

Профиль | Отправить PM | Цитировать


Пишу небольшое приложение, есть желание использовать stored procedure ибо это упростить дальнейшие сопровождение, но эсть проблема.
Или я что то упускаю, или делаю не логично:
PHP код: Выделить весь код

$mysqli = new mysqli('localhost''test''123456''db_test');


if (
mysqli_connect_errno()) { 
    
printf("Подключение к серверу MySQL невозможно. Код ошибки: %s\n"mysqli_connect_error()); 
    exit; 
}
//Запрос 1
if ( !$mysqli->multi_query('SELECT id, hash FROM myTable ORDER BY 1 LIMIT 15;') )
    echo 
$mysqli->error;
$result $mysqli->store_result();
while( 
$row $result->fetch_assoc() ){ 
    
printf("%d (%s)<br />"$row['id'], $row['hash']); 

$result->close(); 
//Запрос 2
if ( !$mysqli->multi_query('CALL test1;') )
    echo 
$mysqli->error;
$result $mysqli->store_result();
$row $result->fetch_assoc();
printf("%d<br />"$row[1]); 
$result->close(); 
//Запрос 3
if ( !$mysqli->multi_query('SELECT id, hash FROM myTable ORDER BY 2 LIMIT 5;') )
    echo 
$mysqli->error;
$result $mysqli->store_result();
while( 
$row $result->fetch_assoc() ){ 
    
printf("%d (%s)<br />"$row['id'], $row['hash']); 

$result->close(); 

$mysqli->close(); 

Третий запрос отваливается с "Commands out of sync; you can't run this command now".
Как правильно делать вызов нескольких SELECT и CALL под ряд?
Спасибо.

-------
Жизнь-это шахматная партия, по окончании которой и короли, и пешки ложатся в один ящик.


Отправлено: 01:52, 04-06-2009

 

Deadooshka


Сообщения: 2482
Благодарности: 671

Профиль | Отправить PM | Цитировать


Цитата:
If you execute mysqli_query() with resultmode MYSQLI_USE_RESULT all subsequent calls will return error Commands out of sync unless you call mysqli_free_result()
см. http://ru2.php.net/mysqli_query

Отправлено: 13:41, 04-06-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Strange_V

Старожил


Сообщения: 222
Благодарности: 29

Профиль | Отправить PM | Цитировать


Sham, я читаю мануалы) там конечно написана правда, но совсем не описана причина такого поведения.
Вчера пол дня безрезультатно гуглил, а сегодня случайно наткнулся на полный ответ.

-------
Жизнь-это шахматная партия, по окончании которой и короли, и пешки ложатся в один ящик.


Отправлено: 15:00, 04-06-2009 | #3



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Использование stored procedure в MySQL

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Драйвер - Deferred Procedure Calls и высокая загрузка CPU Delion Soulblade Microsoft Windows 2000/XP 94 28-03-2014 22:22
MySQL - Автозамена строки из другой строки - trigger? procedure ? BugZZ Программирование и базы данных 0 18-09-2009 09:51
Deferred Procedure Calls в win2k advaced server basyan Microsoft Windows NT/2000/2003 2 29-04-2008 09:01
Remote Procedure Call (RPC) непредвиденная остановка службы ppv Microsoft Windows NT/2000/2003 15 15-02-2007 23:58
The procedure GetStockObject could not be located in the DLL gdi32.dll Marsianin Программирование и базы данных 4 26-05-2006 23:07




 
Переход