यह वही कर रहा है जो आपने पूछा था। जब एक स्ट्रिंग दी जाती है, ?
एक स्ट्रिंग अक्षर के बराबर है। तो
SELECT * FROM Table WHERE field = ?
मतलब
SELECT * FROM Table WHERE field = 'test'
और
SELECT * FROM ?
मतलब
SELECT * FROM 'test'
आपको उपयोग करने की आवश्यकता है
$dbh->prepare("
CREATE TABLE IF NOT EXISTS ".( $dbh->quote_identifier('test') )." (
`id` bigint(100) unsigned NOT NULL AUTO_INCREMENT
)
");