Mysql
 sql >> Base de données >  >> RDS >> Mysql

Perl dbi prepare met une mauvaise citation

C'est juste faire ce que vous avez demandé. Lorsqu'une chaîne est donnée, ? est équivalent à un littéral de chaîne. Alors

SELECT * FROM Table WHERE field = ?

signifie

SELECT * FROM Table WHERE field = 'test'

et

SELECT * FROM ?

signifie

SELECT * FROM 'test'

Vous devez utiliser

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