Ejemplo n.º 1
0
/**
 * Retrieve the values for pma edit mode
 *
 * @param type $where_clause where clauses
 * @param type $table        name of the table
 * @param type $db           name of the database
 *
 * @return type containing insert_mode,whereClauses, result array
 *              where_clauses_array and found_unique_key boolean value
 */
function PMA_getStuffForEditMode($where_clause, $table, $db)
{
    if (isset($where_clause)) {
        $where_clause_array = PMA_getWhereClauseArray($where_clause);
        list($whereClauses, $resultArray, $rowsArray, $found_unique_key) = PMA_analyzeWhereClauses($where_clause_array, $table, $db);
        return array(false, $whereClauses, $resultArray, $rowsArray, $where_clause_array, $found_unique_key);
    } else {
        list($results, $row) = PMA_loadFirstRowInEditMode($table, $db);
        return array(true, null, $results, $row, null, false);
    }
}
Ejemplo n.º 2
0
/**
 * Function to determine Insert/Edit rows
 *
 * @param string $where_clause where clause
 * @param string $db           current database
 * @param string $table        current table
 *
 * @return mixed
 */
function PMA_determineInsertOrEdit($where_clause, $db, $table)
{
    if (isset($_REQUEST['where_clause'])) {
        $where_clause = $_REQUEST['where_clause'];
    }
    if (isset($_SESSION['edit_next'])) {
        $where_clause = $_SESSION['edit_next'];
        unset($_SESSION['edit_next']);
        $after_insert = 'edit_next';
    }
    if (isset($_REQUEST['ShowFunctionFields'])) {
        $GLOBALS['cfg']['ShowFunctionFields'] = $_REQUEST['ShowFunctionFields'];
    }
    if (isset($_REQUEST['ShowFieldTypesInDataEditView'])) {
        $GLOBALS['cfg']['ShowFieldTypesInDataEditView'] = $_REQUEST['ShowFieldTypesInDataEditView'];
    }
    if (isset($_REQUEST['after_insert'])) {
        $after_insert = $_REQUEST['after_insert'];
    }
    if (isset($where_clause)) {
        // we are editing
        $insert_mode = false;
        $where_clause_array = PMA_getWhereClauseArray($where_clause);
        list($where_clauses, $result, $rows, $found_unique_key) = PMA_analyzeWhereClauses($where_clause_array, $table, $db);
    } else {
        // we are inserting
        $insert_mode = true;
        $where_clause = null;
        list($result, $rows) = PMA_loadFirstRow($table, $db);
        $where_clauses = null;
        $where_clause_array = array();
        $found_unique_key = false;
    }
    // Copying a row - fetched data will be inserted as a new row,
    // therefore the where clause is needless.
    if (isset($_REQUEST['default_action']) && $_REQUEST['default_action'] === 'insert') {
        $where_clause = $where_clauses = null;
    }
    return array($insert_mode, $where_clause, $where_clause_array, $where_clauses, $result, $rows, $found_unique_key, isset($after_insert) ? $after_insert : null);
}
 /**
  * Test for PMA_getWhereClauseArray
  *
  * @return void
  */
 public function testGetWhereClauseArray()
 {
     $this->assertNull(PMA_getWhereClauseArray(null));
     $this->assertEquals(array(1, 2, 3), PMA_getWhereClauseArray(array(1, 2, 3)));
     $this->assertEquals(array('clause'), PMA_getWhereClauseArray('clause'));
 }
Ejemplo n.º 4
0
 * Get the analysis of SHOW CREATE TABLE for this table
 */
$analyzed_sql = PMA_Table::analyzeStructure($db, $table);
/**
 * Get the list of the fields of the current table
 */
PMA_DBI_select_db($db);
$table_fields = array_values(PMA_DBI_get_columns($db, $table));
$paramTableDbArray = array($table, $db);
/**
 * Determine what to do, edit or insert? 
 */
if (isset($where_clause)) {
    // we are editing
    $insert_mode = false;
    $where_clause_array = PMA_getWhereClauseArray($where_clause);
    list($where_clauses, $result, $rows, $found_unique_key) = PMA_analyzeWhereClauses($where_clause_array, $table, $db);
} else {
    // we are inserting
    $insert_mode = true;
    $where_clause = null;
    list($result, $rows) = PMA_loadFirstRow($table, $db);
    $where_clauses = null;
    $where_clause_array = null;
    $found_unique_key = false;
}
// Copying a row - fetched data will be inserted as a new row,
// therefore the where clause is needless.
if (isset($_REQUEST['default_action']) && $_REQUEST['default_action'] === 'insert') {
    $where_clause = $where_clauses = null;
}