sql >> Base de Datos >  >> RDS >> Mysql

Perl dbi prepare está poniendo una cita incorrecta

Solo está haciendo lo que pediste. Cuando se le da una cadena, ? es equivalente a un literal de cadena. Entonces

SELECT * FROM Table WHERE field = ?

significa

SELECT * FROM Table WHERE field = 'test'

y

SELECT * FROM ?

significa

SELECT * FROM 'test'

Necesitas usar

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