Example #1
0
function _raiseError($code, $conn_id = null, $args = array())
{
    if ($code == LPE_INVALID_CONNECT) {
        $err_code = -1;
        $err_message = "Invalid connect";
    } elseif ($code == LPE_LINTER_ERROR) {
        $lin_err = linter_last_error($conn_id, LINTER_ERROR);
        $sys_err = linter_last_error($conn_id, SYSTEM_ERROR);
        $err_message = linter_error_msg($conn_id);
        $err_code = $lin_err;
        var_dump($err_code);
        var_dump($args['sql']);
        if ($err_code <= 2 && $err_code > 0) {
            return false;
        }
        if ($err_code >= 2000 && $err_code < 3000) {
            $err_row = $sys_err & 0xffff;
            $err_pos = $sys_err >> 16;
            $err_message .= sprintf(" at row %d, position %d", $err_row, $err_pos);
        } else {
            $err_message .= sprintf(", system error %d", $sys_err);
        }
    } else {
        $err_message = sprintf("Linter extension error %d", $code);
        $err_code = $code;
    }
    throw new lmbException("Database error: No:" . $err_code . ". Description: " . $err_message);
    return true;
}
 function _raiseError($code, $conn_id = null, $args = array())
 {
     if (is_null($conn_id)) {
         $conn_id = $this->connectionId;
     }
     if ($code >= 0 && $this->connectionId >= 0) {
         return false;
     }
     if ($this->connectionId < 0) {
         $lin_err = linter_last_error($this->connectionId, LINTER_ERROR);
         $sys_err = linter_last_error($this->connectionId, SYSTEM_ERROR);
         $err_message = sprintf("Linter connect error %s, system error %s\n", $lin_err, $sys_err);
         $err_code = $sys_err;
     } elseif ($code == LPE_INVALID_CONNECT) {
         $err_code = -1;
         $err_message = "Invalid connect";
     } elseif ($code == LPE_LINTER_ERROR) {
         $lin_err = linter_last_error($conn_id, LINTER_ERROR);
         $sys_err = linter_last_error($conn_id, SYSTEM_ERROR);
         $err_message = linter_error_msg($conn_id);
         $err_code = $lin_err;
         if ($err_code <= 2 && $err_code > 0) {
             return self::LINTER_EMPTY_DATASET;
         }
         if ($err_code >= 2000 && $err_code < 3000) {
             $err_row = $sys_err & 0xffff;
             $err_pos = $sys_err >> 16;
             $err_message .= sprintf(" at row %d, position %d", $err_row, $err_pos);
             $err_message .= "Query: " . $args['sql'];
         } else {
             $err_message .= sprintf(", system error %d", $sys_err);
         }
     } else {
         $err_message = sprintf("Linter extension error %d", $code);
         $err_code = $code;
     }
     $err_message .= ". " . count($this->cursorPool) . " cursors opened";
     throw new lmbException("Database error: No:" . $err_code . ". Description: " . $err_message);
     return true;
 }