(I thought this might have been a FAQ, but it doesn't appear to be)
I'm aware that table names cannot be used with place holders. From the DBI docs - "With most drivers, placeholders can't be used for any element of a statement that would prevent the database server from validating the statement and creating a query execution plan for it."
Fair enough.
But what is the usual/recommended approach when you strike a situation where you think you would _like_
to use placeholders for table names?
In my particular situation, I have something like (contrived example):
Obviously, it would be nice if I could do:INSERT INTO Widgets201003 (moo, baa, cluck) VALUES (?, ?, ?) INSERT INTO Widgets201004 (moo, baa, cluck) VALUES (?, ?, ?) INSERT INTO Widgets201005 (moo, baa, cluck) VALUES (?, ?, ?)
But of course, that doesn't work.INSERT INTO ? (moo, baa, cluck) VALUES (?, ?, ?)
I've thought about perhaps building a hash of SQL statements, using the table names as keys - but that feels really horrible.
So, how do others generally approach this?
Is there a module about that addresses this particular problem?
If it matters, I'm dealing with both MySQL & PostgreSQL
many thanks,
Darren :)
In reply to DBI - Table names & placeholders by McDarren
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |