EXPLAIN only gets information about a SELECT statement, I believe. Can you elaborate on what it is you're doing? If you're scripting a dynamically built query statement you might just need to build a parser to cycle through the statement and verify the existence of the tables, perhaps?
Well, I'm writing unit tests. I don't want to actually modify the database, I just want to check if the queries make sense. I was hoping mysql/sql had some option to let me check if my queries made sense, without actually executing them.
Well, when it comes to unit testing, if you use a real database you'd have to write sleep()'s inbetween each test query or you may barrage the db to death, or to the point of getting unrealistic response times. In any case, your test runs will take much longer. Hence the need to just test queries rather than comitting to them...
If you're using a recent MySQL you should be able to BEGIN a transaction, execute your query, check for errors, and then ROLLBACK the change. No visible change to the database, but you'll get an error if the query fails (though not just syntactic errors, integrity and constraint errors would show up as well...which may or may not be what you're looking for).
As far as I know there isn't a way to just parse the query and do nothing, but there's a good chance that I'm wrong.