Обработка ошибок запроса в CodeIgniter - PullRequest
0 голосов
/ 13 января 2011

Я пытаюсь выполнить запрос MySQL с помощью библиотеки активных записей CI.Если запрос сформирован неверно, то CI вызывает внутреннюю ошибку сервера 500 и завершает работу без обработки следующих шагов.

Мне нужно откатить все остальные запросы, обработанные до этого оператора ошибки, и откат такжепроисходит .. не могли бы вы помочь, пожалуйста?

Фрагменты кода приведены ниже:

function dbInsertInformationToDB($data_array)
{
    $returnID = "";
    $uniqueDataArray = array();

      // I prepare a array of values here
    $uniqueTableList = filter_unique_tables($data_array[2]);
    $this->db->trans_begin();

    // inserting is done here
    // when there is a query error in $this->db->insert().. it is not rolling back the previous query executed

    foreach($uniqueTableList as $table_name)
    {
        $uniqueDataArray = filterDataArray($data_array,$table_name,2);
        $this->db->insert($table_name,$uniqueDataArray);
        if ($this->db->_error_message())
        {
            $error = "I am caught!!";
        }
        $returnID = $this->db->affected_rows();
    }
    if ($this->db->trans_status() === FALSE)
    {
        $this->db->trans_rollback();
    }
    else
    {
        $this->db->trans_commit();
    }

    return "ERROR";
}

1 Ответ

0 голосов
/ 13 января 2011

Попробуйте блок catch catch: http://php.net/manual/en/language.exceptions.php

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