I just pushed something from my local machine to the live site and I get blank pages everywhere. I tracked down the problem to mysqli_fetch_all when I use that everything breaks
As per php documentation, this function is mysqlnd only (MySQL native driver). If you do not have it installed on the server, it will not execute (and throw errors).
Available only with mysqlnd.
As mysqli_fetch_all() returns all the rows as an array in a single step, it may consume more memory than some similar functions such as mysqli_fetch_array(), which only returns one row at a time from the result set. Further, if you need to iterate over the result set, you will need a looping construct that will further impact performance. For these reasons mysqli_fetch_all() should only be used in those situations where the fetched result set will be sent to another layer for processing.
Visit http://www.php.net/manual/en/mysqli-result.fetch-all.php#refsect1-mysqli-result.fetch-all-mysqlnd for more information about this.
Consider using mysqli_fetch_array instead - http://www.php.net/manual/en/mysqli-result.fetch-all.php. It uses almost the same parameters, so there shouldn't be a problem.
There is a possibility that the problem lies elsewhere, but this would be my first guess (with no error reporting enabled yet :/)
EDIT: You will need to iterate over the results, because mysqli_fetch_array (and other functions from this family) returns one row at a time. This is probably why you have the results wrong when using them.
Other solution would be enabling php_mysqlnd.dll/php_mysqlnd.so extension in the php.ini on the server and restarting the service (you probably have in on the local machine, and that's why it works)