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]