/** * 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]); }
// 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);
// // 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);