/**
  * Test for PMA_executeSqlQuery
  *
  * @return void
  */
 public function testExecuteSqlQueryWithTryQuery()
 {
     $query = array('SELECT 1', 'SELECT 2');
     $GLOBALS['sql_query'] = 'SELECT';
     $GLOBALS['cfg']['IgnoreMultiSubmitErrors'] = true;
     $_REQUEST['submit_type'] = '';
     $dbi = $this->getMockBuilder('PMA_DatabaseInterface')->disableOriginalConstructor()->getMock();
     $dbi->expects($this->at(0))->method('tryQuery')->with('SELECT 1')->will($this->returnValue(true));
     $dbi->expects($this->at(1))->method('affectedRows')->will($this->returnValue(2));
     $dbi->expects($this->at(2))->method('insertId')->will($this->returnValue(1));
     $dbi->expects($this->at(5))->method('tryQuery')->with('SELECT 2')->will($this->returnValue(false));
     $dbi->expects($this->once())->method('getError')->will($this->returnValue('err'));
     $dbi->expects($this->exactly(2))->method('getWarnings')->will($this->returnValue(array()));
     $GLOBALS['dbi'] = $dbi;
     $result = PMA_executeSqlQuery(array(), $query);
     $this->assertEquals(array('sql_query' => 'SELECT'), $result[0]);
     $this->assertEquals(2, $result[1]);
     $this->assertInstanceOf('PMA_Message', $result[2][0]);
     $msg = $result[2][0];
     $reflectionMsg = new ReflectionProperty('PMA_Message', 'params');
     $reflectionMsg->setAccessible(true);
     $this->assertEquals(array(2), $reflectionMsg->getValue($msg));
     $this->assertEquals(array(), $result[3]);
     $this->assertEquals(array('err'), $result[4]);
     $this->assertEquals('SELECT', $result[5]);
 }
예제 #2
0
    // Note: logic passes here for inline edit
    $message = PMA_Message::success(__('No change'));
    $active_page = $goto_include;
    include '' . PMA_securePath($goto_include);
    exit;
}
unset($multi_edit_columns, $is_insertignore);
// If there is a request for SQL previewing.
if (isset($_REQUEST['preview_sql'])) {
    PMA_previewSQL($query);
}
/**
 * Executes the sql query and get the result, then move back to the calling
 * page
 */
list($url_params, $total_affected_rows, $last_messages, $warning_messages, $error_messages, $return_to_sql_query) = PMA_executeSqlQuery($url_params, $query);
if ($is_insert && (count($value_sets) > 0 || $row_skipped)) {
    $message = PMA_Message::getMessageForInsertedRows($total_affected_rows);
    $unsaved_values = array_values($unsaved_values);
} else {
    $message = PMA_Message::getMessageForAffectedRows($total_affected_rows);
}
if ($row_skipped) {
    $goto_include = 'tbl_change.php';
    $message->addMessages($insert_errors, '<br />');
    $message->isError(true);
}
$message->addMessages($last_messages, '<br />');
if (!empty($warning_messages)) {
    $message->addMessages($warning_messages, '<br />');
    $message->isError(true);
예제 #3
0
    //
    // Note: logic passes here for inline edit
    $message = PMA_Message::success(__('No change'));
    $active_page = $goto_include;
    include '' . PMA_securePath($goto_include);
    exit;
}
unset($multi_edit_colummns, $is_insertignore);

/**
 * Executes the sql query and get the result, then move back to the calling
 * page
 */
list ($url_params, $total_affected_rows, $last_messages, $warning_messages,
    $error_messages, $return_to_sql_query)
        = PMA_executeSqlQuery($url_params, $query);

if ($is_insert && count($value_sets) > 0) {
    $message = PMA_Message::getMessageForInsertedRows($total_affected_rows);
} else {
    $message = PMA_Message::getMessageForAffectedRows($total_affected_rows);
}

$message->addMessages($last_messages, '<br />');

if (! empty($warning_messages)) {
    $message->addMessages($warning_messages, '<br />');
    $message->isError(true);
}
if (! empty($error_messages)) {
    $message->addMessages($error_messages);