in reply to Re^3: DBD::CSV failing
in thread DBD::CSV failing

It's not a matter of whether "the delimited stuff" is in double quotes. The fields in the data don't need to be in double quotes unless they have embedded newlines or commas or double quote characters. The field separator ';' doesn't need to be in double quotes because it's a single literal character. The only thing that *needs* to be in double quotes is the "\n" beacues as bmann++ #good eye, correctly pointed out, otherwise it will expect there to tbe a literal slash followed by a literal 'n' and the end of all your records.

Replies are listed 'Best First'.
Re^5: DBD::CSV failing
by bsdwolf (Initiate) on Feb 03, 2006 at 00:26 UTC
    Okay, I'm back (again). Using $sth->fetchrow_hashref seems to be solving my problem. I have discovered that one cannot use $sth->fetch if one chooses to execute a query containing conditionals based on fields; i.e.
    $sth->prepare("SELECT * FROM db WHERE field < 2000"); while (@row = $sth->fetch) { ... }
    will return the first row and then nothing beyond that. If I use
    while ($row = $sth->fetchrow_hashref) { ...
    for some reason, everything seems to be hunky dory. Also, that "undef" in setting up the column names and variable references also is wont to cause me difficulty ("perldoc DBD::CSV" for reference on that one). Go figure.
    --*greywolf;
    /* relayer halo gmail */
      Your code:
      while (@row = $sth->fetch) # don't do this
      is wrong. In DBI, fetch() is an alias for fetchrow_arrayref so its return is a scalar (an array reference), not an array.