From the codex:
<?php $wpdb->update( $table, $data, $where, $format = null, $where_format = null ); ?>
In your exampe ‘ CURDATE()’ is simply a string, not a MySQL function (or something else).
The correct syntax for php’s date() is:
date( [format], [timestamp] )
Try this:
$this->wpdb->update(
'wp_competitors',
array(
'results' => $tips, // json
'update_time' => date( 'Y-m-d H:i:s', time() )
),
array( 'token' => $token ),
array(
'%s', // value1
'%d' // value2
),
array( '%d' )
);
Better than php’s date() is WordPress current_time():
current_time( 'mysql' )
This will return something similiar to 2012-12-02 23:00:08