PMA\libraries\Tracker::changeTrackingData PHP Method

changeTrackingData() public static method

Changes tracking data of a table.
public static changeTrackingData ( string $dbname, string $tablename, string $version, string $type, string | array $new_data ) : boolean
$dbname string name of database
$tablename string name of table
$version string version
$type string type of data(DDL || DML)
$new_data string | array the new tracking data
return boolean result of change
    public static function changeTrackingData($dbname, $tablename, $version, $type, $new_data)
    {
        if ($type == 'DDL') {
            $save_to = 'schema_sql';
        } elseif ($type == 'DML') {
            $save_to = 'data_sql';
        } else {
            return false;
        }
        $date = date('Y-m-d H:i:s');
        $new_data_processed = '';
        if (is_array($new_data)) {
            foreach ($new_data as $data) {
                $new_data_processed .= '# log ' . $date . ' ' . $data['username'] . $GLOBALS['dbi']->escapeString($data['statement']) . "\n";
            }
        } else {
            $new_data_processed = $new_data;
        }
        $sql_query = " UPDATE " . self::_getTrackingTable() . " SET `" . $save_to . "` = '" . $new_data_processed . "' " . " WHERE `db_name` = '" . $GLOBALS['dbi']->escapeString($dbname) . "' " . " AND `table_name` = '" . $GLOBALS['dbi']->escapeString($tablename) . "' " . " AND `version` = '" . $GLOBALS['dbi']->escapeString($version) . "' ";
        $result = PMA_queryAsControlUser($sql_query);
        return (bool) $result;
    }

Usage Example

Exemplo n.º 1
0
/**
 * Function to delete from a tracking report log
 *
 * @param array  &$data     tracked data
 * @param string $which_log ddlog|dmlog
 * @param string $type      DDL|DML
 * @param string $message   success message
 *
 * @return string HTML for the message
 */
function PMA_deleteFromTrackingReportLog(&$data, $which_log, $type, $message)
{
    $html = '';
    $delete_id = $_REQUEST['delete_' . $which_log];
    // Only in case of valid id
    if ($delete_id == (int) $delete_id) {
        unset($data[$which_log][$delete_id]);
        $successfullyDeleted = Tracker::changeTrackingData($_REQUEST['db'], $_REQUEST['table'], $_REQUEST['version'], $type, $data[$which_log]);
        if ($successfullyDeleted) {
            $msg = Message::success($message);
        } else {
            $msg = Message::rawError(__('Query error'));
        }
        $html .= $msg->getDisplay();
    }
    return $html;
}
All Usage Examples Of PMA\libraries\Tracker::changeTrackingData