Hey, The placeholders (?) are safely escaped by the DBI library -- your query that gets submitted to the server actually looks like:
CREATE TABLE IF NOT EXISTS CS_ 12569 ( ID_NO MEDIUMINT, NAME VARCHAR(30), TYPE CHAR(1) ) I think it puts the space in, but it might actually be quoting it. I would do something like: $dbh->do(sprintf("CREATE TABLE IF NOT EXISTS CS_%d ( ID_NO MEDIUMINT, NAME VARCHAR(30), TYPE CHAR(1) )", $T_NO)); out. On Wed, 16 Mar 2005 10:10:39 -0800 (PST), Richard Reina <[EMAIL PROTECTED]> wrote: > Dear MySQL Developers and Enthusiasts, > > when I run these lines of code : > > my $T_NO = 12569; > use DBI; > my $dbh = > DBI->connect("DBI:mysql:database=carr_search;192.168.0.1",user,password); > > my $q = "CREATE TABLE IF NOT EXISTS CS_? ( > ID_NO MEDIUMINT, > NAME VARCHAR(30), > TYPE CHAR(1) > )"; > my $sth = $dbh->prepare($q); > $sth->execute($T_NO); > > from w/in a program I get: > > DBD:mysql::st execute failed: You have an error in > your SQL syntax near '12569 ( > ID_NO MEDIUMINT, > NAME VARCHAR(30), > TYP' at line 2 at ./carr_s.pl line 36. > > However if I cut and paste the exact same code and > make it it's own program then execute it, it works > perfectly. Can anyone tell me what's happening and how > I can fix it? > > Thanks, > > Richard > > -- > MySQL General Mailing List > For list archives: http://lists.mysql.com/mysql > To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] > > -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]