Para actualizar la tabla de usuarios, cuando tengas el array con las subastas finalizadas
Código PHP:
$sql = "SELECT o.expira p.* FROM pujas as p, objetos as o ORDER BY p.valor DESC WHERE o.expira > NOW() AND o.id = p.objeto_id";
/* Con esto seleccionas la fecha de expiración y los datos de las pujas, ordenados por precio */
$result = $db->query($sql)->fetchAssoc(); // Utiliza aquí tu método para obtener la consulta.
$cambiados = array(); // Array para "recordar" las filas que hemos cambiado
foreach($result as $row) {
if(!in_array($row['objeto_id'], $cambiados)) continue; // Ya habíamos procesado este elemento.
$usuario = $row['p.usuario_id'];
$objeto = $row['p.objeto_id'];
$sql = "UPDATE objetos SET usuario = \"$usuario\" WHERE id = \"$objeto\" ";
$db->query($sql);
// Ahora también puedes guardar un registro, en la base de datos o en un archivo
$logdata = 'Fin de la subasta del objeto ID'.$objeto.'. Nuevo poseedor: ID'.$usuario;
//BBDD:
$db->query('INSERT INTO logs (cadena, fecha) VALUES ("'.$logdata.'", NOW());');
// Archivo: (con PHP>5.2.0)
file_put_contents('logs/'.date('Y_m_d').'.log', $logdata."\n", FILE_APPEND);
}