Noticed a small mistake in the MySQL section:
Error Based:
AND (SELECT * FROM SOME_EXISTING_TABLE) = 1
Unless SOME_EXISTING_TABLE has no more than one row, that query will fail. See http://dev.mysql.com/doc/refman/5.0/en/comparisons-using-sub...:"For a comparison of the subquery to a scalar, the subquery must return a scalar."
It's easy to fix: just add LIMIT 1 to the end of the sub-select.
---
This document is very useful. I've been doing web app security for a while and I haven't run across some of these techniques before (eg: PROCEDURE ANALYSE()). I didn't realize that PDO_MYSQL allowed for multiple queries by default either (although it makes sense, since historically other RDBMS have supported it).