in reply to Re^6: Inserting, update and deleteting a database under conditions
in thread Inserting, update and deleteting a database under conditions

How does $db get initialized? When you do the INSERT, what values should be in place of the question marks you specified?
  • Comment on Re^7: Inserting, update and deleteting a database under conditions

Replies are listed 'Best First'.
Re^8: Inserting, update and deleteting a database under conditions
by Nik (Initiate) on Jan 15, 2008 at 16:29 UTC
    Like this:
    #===================================================================== +========== my $db = ( $ENV{'SERVER_NAME'} !~ /varsa/ ) ? DBI->connect('DBI:mysql:orthodox;localhost', 'root', '******' +, {RaiseError=>1}) : DBI->connect('DBI:mysql:skieros_orthodox;www.freegreece.net', + 'skieros_root', '******', {RaiseError=>1}); #===================================================================== +========== my @files = glob "$ENV{'DOCUMENT_ROOT'}/data/text/*.txt"; my @filenames = map {/([^\/]+)\.txt$/} @files; my @dbfiles = $db->do( 'SELECT title, body FROM articles' ); foreach my $filename (@filenames) { unless( grep /^\Q$filename\E$/, @dbfiles ) { open FILE, "<$filename" or die "Cannot open $filename: $!"; my $data = <FILE>; close FILE; unless( grep /^\Q$data\E$/, @dbfiles ) { $db->do('INSERT INTO test (title, body) VALUES (?, ?)', undef +, $filename, $data) } } }
    The content of @dbfiles isnt what i think it is though. What i wanted to return is all table's articles contents.
      1. @dbfiles doesn't contain what I thought
      2. @dbfiles is filled using $dbh->do
      3. I wonder what the return value of $dbh->do is?
      4. I wonder if the DBI documentation mentions the return value of the do method?
      OK, that should tell you why your code returns what it does. To get your code to do what you want, I'd recommend consulting DBI recipes.
        Thanks, i guess if at some point i don't start reading i'll question myself and other for eternity.... :-)

        Thanks for the links, lets hope they are written in an easy way so i will be able to understand them.