Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Perl-dbi-Vorbereitung setzt falsches Zitat

Es tut nur, worum Sie gebeten haben. Wenn eine Zeichenfolge angegeben wird, ? entspricht einem String-Literal. Also

SELECT * FROM Table WHERE field = ?

bedeutet

SELECT * FROM Table WHERE field = 'test'

und

SELECT * FROM ?

bedeutet

SELECT * FROM 'test'

Sie müssen

verwenden
$dbh->prepare("
   CREATE TABLE IF NOT EXISTS ".( $dbh->quote_identifier('test') )." (
             `id` bigint(100) unsigned NOT NULL AUTO_INCREMENT
          )
");