CodeIgniter - не может выполнить процедуру с парой операторов UPDATE - PullRequest
0 голосов
/ 22 марта 2012

Возникла проблема с выполнением подпрограмм в CodeIgniter.

У меня есть подпрограмма, которая просто обновляет пару таблиц mysql данными, указанными в параметрах.

Первоначально я получил:

Номер ошибки: 2014 Команды не синхронизированы; Вы не можете запустить эту команду сейчас

Пробовал раствор, указанный на http://codeigniter.com/forums/viewthread/96583/

$this->mydb->Query($sql);

с измененным драйвером на mysqli

Он прекрасно работает с утверждениями select для меня, но если в подпрограмме есть только пара обновлений - она ​​не работает.

Проблема в том, что сообщение об ошибке не возвращается. Он ведет себя так, как будто он успешно запущен, но таблицы не обновляются.

ПРИМЕЧАНИЕ: не должно быть проблем с самой подпрограммой, поскольку, если я распечатываю соответствующий запрос и пытаюсь выполнить его в MySQL Workbench - таблицы обновляются правильно.

Любые советы приветствуются.

Ответы [ 3 ]

2 голосов
/ 08 декабря 2012

Попробуйте изменить dbdriver в файле конфигурации на mysqli:

$db['default']['dbdriver'] = "mysqli";

1 голос
/ 06 июля 2012

$ this-> mydb-> Запрос, использованный во всем проекте для каждого запроса, решил проблему

0 голосов
/ 23 сентября 2014
function call( $procedure )
{
    $result = @$this->db->conn_id->query( $procedure );

    while ( $this->db->conn_id->next_result() )
    {
        //free each result.
        $not_used_result = $this->db->conn_id->use_result();

        if ( $not_used_result instanceof mysqli_result )
        {
            $not_used_result->free();
        }
    }

    return $result;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...