FML... learn something new every day. I was running a query at the top of that page that also had a column 'uid', matching my session variable. APPARENTLY, the fucking extract command will overwrite existing items in the symbol table, INCLUDING session variables.
extract($row, EXTR_SKIP);
The EXTR_SKIP prevents it from overwriting existing variables. Luckily I don't use the user id variable from the table on that page. I could have just selected specific columns out of the table to get around it too but that didn't seem ideal.