DBI mysql question.

2005-03-16 Thread Richard Reina
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]



Re: DBI mysql question.

2005-03-16 Thread Gary Richardson
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]