Don't tell him the query's quotations are incorrect when they're not. They are fine.
I'd like to know what the $screen_name variable is, though. Your query is trying to limit by the screen name ("ORDER BY rand() LIMIT $screen_name") but you can only limit the query by numbers, i.e. only return a certain number of rows: ("ORDER BY rand() LIMIT 5") would be a proper example of using limit.
I imagine this is probably calling the Twitter API? From my experience, the OAuth info does not change, so I imagine your query is trying to retrieve the OAuth codes for a user?
If so, your query would simply be:
("SELECT * from `users` where `oauth_token`<>'' AND `screen_name`='" . $screen_name . "'")
Assuming the field for $screen_name is called screen_name
That's only if $screen_name is holding a username (like my "screen name" would be artizhay). Your for-loop implies that $screen_name is a number, although the variable name implies text data.
Let us know what these variables are first. Also if the script is throwing an error you should post that as well. Given the current code snippet, there is no established MySQL connection, so I don't know if this is omitted or if you forgot it. Please provide any errors you've been given.