I put the PDO in an "wrapper" encase I ever changed drivers in the future? but is this a waste of time?
Well, in the latter case where you have the query written out? Yes. Because what needs to change isn't the wrapper or much of anything the wrapper could do, it's the QUERY due to minor syntax changes.
It's why I prefer to "secure" my queries via what's called "named queries". All queries are pre-built in their own files PER SUPPORTED DRIVER.
For example if we had driver support for that insert, we'd have something like:
Due to there POSSIBLY being minor differences in the calling code (such as polyfilling in MSSQL's re-re lack of results return) the extension to PDO would have it's own copy in each of those directories as well where/as needed, falling back to one in /pdo if the /pdo/driver
/ one doesn't exist.
Then you overload the existing query, exec, and prepare methods to ONLY accept the NAME of the queries -- such as:
To prevent queries built in PHP from being loaded. You need a different query, create the file(s) for it. Makes it a hair harder for code elevations to abuse the database. More so if you split them up into subdirectories that match user permission levels and the calling routines.
Then of course you chown them to root / su, and set them to 644 so good luck PHP -- or much of anything else -- writing to them, making them inviolate.
When you run your overloaded constructor, extract the database type from the DSN, and use it to access the correct directory of queries for the appropriate driver. Want to add support for a new driver? Make a directory that matches the DSN label, copy over and convert all your queries, change the PDO extend as appropriate, done.
Apart from the fact you would be passing the name of the query instead of an actual query, PDO's behavior itself would remain largely unchanged. You'd still just 'bindParam' and/or execute normally.
Named queries are an old OLD technique that for some reason disappeared sometime around when SQL started to gain actual market traction, but it's a perfect match for how PDO can support multiple DB drivers.