I got stuck with this problem, I found many posts but seemed it's not useful. So I post again here and hope someone can help me.
Let say I have 2 button, 1 is Start button and 1 is Stop button. When I press start will call ajax function which query very long time. I need when I press Stop will stop immediately this query, not execute anymore.
this is function used to call query and fetch row. (customize Mysqli.php)
public function fetchMultiRowset($params = array()) {
    $data = array();
    $mysqli = $this->_adapter->getConnection();
    $mysqli->multi_query($this->bindParams($this->_sql, $params));
    $thread_id = mysqli_thread_id($mysqli);
    ignore_user_abort(true);
    ob_start();
    $index = 0;
    do {
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
                $data[$index] = $row;
                $index++;
                echo " ";
                ob_flush();
                flush();
            }
            $result->free();
        }
    }
    while ($mysqli->more_results() && $mysqli->next_result());
    ob_end_flush();
    return $data;
}
Function in Model:
public function select_entries() {
    $data = null;
    try {
        $db = Zend_Db_Adapter_Mysqlicustom::singleton();
        $sql = "SELECT * FROM report LIMIT 2000000";
        $data = $db->fetchMultiRowset($sql);
        $db->closeConnection();
    } catch (Exception $exc) {
    }
    return $data;
}
Controller:
public function testAction(){
    $op = $this->report_test->select_entries();
}
In AJAX I used xhr.abort() to stop the AJAX function.  But it still runs the query while AJAX was aborted.
How do I stop query? I used Zend Framework.
 
     
     
    