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]

Reply via email to