예제 #1
0
 /**
  * Test for getMessageForInsertedRows() method
  *
  * @param int    $rows   Number of rows
  * @param string $output Expected string
  *
  * @return void
  *
  * @dataProvider providerInsertedRows
  */
 public function testInsertedRows($rows, $output)
 {
     $this->object = new PMA_Message();
     $msg = $this->object->getMessageForInsertedRows($rows);
     echo $this->object->addMessage($msg);
     $this->expectOutputString($output);
     $this->object->display();
 }
예제 #2
0
/**
 * Function to get the message for the no rows returned case
 *
 * @param string $message_to_show      message to show
 * @param array  $analyzed_sql_results analyzed sql results
 * @param int    $num_rows             number of rows
 *
 * @return string $message
 */
function PMA_getMessageForNoRowsReturned($message_to_show, $analyzed_sql_results, $num_rows)
{
    if ($analyzed_sql_results['is_delete']) {
        $message = PMA_Message::getMessageForDeletedRows($num_rows);
    } elseif ($analyzed_sql_results['is_insert']) {
        if ($analyzed_sql_results['is_replace']) {
            // For replace we get DELETED + INSERTED row count,
            // so we have to call it affected
            $message = PMA_Message::getMessageForAffectedRows($num_rows);
        } else {
            $message = PMA_Message::getMessageForInsertedRows($num_rows);
        }
        $insert_id = $GLOBALS['dbi']->insertId();
        if ($insert_id != 0) {
            // insert_id is id of FIRST record inserted in one insert,
            // so if we inserted multiple rows, we had to increment this
            $message->addMessage('[br]');
            // need to use a temporary because the Message class
            // currently supports adding parameters only to the first
            // message
            $_inserted = PMA_Message::notice(__('Inserted row id: %1$d'));
            $_inserted->addParam($insert_id + $num_rows - 1);
            $message->addMessage($_inserted);
        }
    } elseif ($analyzed_sql_results['is_affected']) {
        $message = PMA_Message::getMessageForAffectedRows($num_rows);
        // Ok, here is an explanation for the !$is_select.
        // The form generated by sql_query_form.lib.php
        // and db_sql.php has many submit buttons
        // on the same form, and some confusion arises from the
        // fact that $message_to_show is sent for every case.
        // The $message_to_show containing a success message and sent with
        // the form should not have priority over errors
    } elseif (!empty($message_to_show) && !$analyzed_sql_results['is_select']) {
        $message = PMA_Message::rawSuccess(htmlspecialchars($message_to_show));
    } elseif (!empty($GLOBALS['show_as_php'])) {
        $message = PMA_Message::success(__('Showing as PHP code'));
    } elseif (isset($GLOBALS['show_as_php'])) {
        /* User disable showing as PHP, query is only displayed */
        $message = PMA_Message::notice(__('Showing SQL query'));
    } else {
        $message = PMA_Message::success(__('MySQL returned an empty result set (i.e. zero rows).'));
    }
    if (isset($GLOBALS['querytime'])) {
        $_querytime = PMA_Message::notice('(' . __('Query took %01.4f seconds.') . ')');
        $_querytime->addParam($GLOBALS['querytime']);
        $message->addMessage($_querytime);
    }
    // In case of ROLLBACK, notify the user.
    if (isset($_REQUEST['rollback_query'])) {
        $message->addMessage(__('[ROLLBACK occurred.]'));
    }
    return $message;
}
예제 #3
0
    $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);
}
if (!empty($error_messages)) {
예제 #4
0
         }
     } else {
         if ($analyzed_sql[0]['querytype'] == 'DROP' && $table != '') {
             PMA_clearTransformations($db, $table);
         }
     }
 }
 if ($is_delete) {
     $message = PMA_Message::getMessageForDeletedRows($num_rows);
 } elseif ($is_insert) {
     if ($is_replace) {
         // For replace we get DELETED + INSERTED row count,
         // so we have to call it affected
         $message = PMA_Message::getMessageForAffectedRows($num_rows);
     } else {
         $message = PMA_Message::getMessageForInsertedRows($num_rows);
     }
     $insert_id = PMA_DBI_insert_id();
     if ($insert_id != 0) {
         // insert_id is id of FIRST record inserted in one insert,
         // so if we inserted multiple rows, we had to increment this
         $message->addMessage('[br]');
         // need to use a temporary because the Message class
         // currently supports adding parameters only to the first
         // message
         $_inserted = PMA_Message::notice(__('Inserted row id: %1$d'));
         $_inserted->addParam($insert_id + $num_rows - 1);
         $message->addMessage($_inserted);
     }
 } elseif ($is_affected) {
     $message = PMA_Message::getMessageForAffectedRows($num_rows);