Tim, I've tried every imaginable option: single quotes, double quotes, escaped quotes, table name only, no quotes....nothing works. I think there is a bug in DBD::mysql(3). I have spent hours and hours googling this problem and no one else has reported it. ~mark
>>> Tim Bunce <[EMAIL PROTECTED]> 11-May-06 08:40:24 AM >>> On Wed, May 10, 2006 at 09:26:52AM -0400, Mark Galbreath wrote: > Of course it's a string. It was a typo. > > my $rows = $dbh->do("LOAD DATA INFILE 'data.txt' INTO TABLE 'db.table' FIELDS > TERMINATED BY '|'"); > > 'db.table' == "database_name.table_name" Don't put single quotes around the table name. db.table or `db`.`table` should work, but 'db.table' won't. Tim. > >>> Paul DuBois <[EMAIL PROTECTED]> 10-May-06 09:13:47 AM >>> > > On 5/10/06 7:58, "Mark Galbreath" <[EMAIL PROTECTED]> wrote: > > > Hi guys, > > > > The following query works fine from the MySQL client: > > > > LOAD DATA INFILE 'data.txt' INTO TABLE 'db.table' FIELDS TERMINATED BY > > '|' > > > > but fails in perl with a malformed SQL syntax error: > > > > my $rows = $dbh->do(LOAD DATA INFILE 'data.txt' INTO TABLE 'db.table' FIELDS > > TERMINATED BY '|'); > > > > Anybody have a clue as to why this will not work? > > That hasn't the faintest hope of working. You should post the actual code > that you're using. do() with a non-string argument is surely not your > actual code. > > Also, 'db.table' doesn't look like a valid quoted identifier. > > > >