http://www.perlmonks.org?node_id=390775


in reply to Re: DBD:ANYDATA - Execution ERROR: No such column
in thread DBD:ANYDATA - Execution ERROR: No such column

Hi jZed,
Thanks for the reply. I am presently using AnyData::Standalone . The Anydata.pm file tells me that it is version 0.08, so it does not seem that is the problem. (unless the bug survived in the standalone version???)

It is a line that reads:
<quote> update_stats($passed_info1,$passed_info124);</quote>
The update_stats sub is below:

sub update_stats { # $internal_user_data[10] = wins # $internal_user_data[11] = losses # $internal_user_data[14] = strength my @internal_data = @_; print $query->p("Data Passed to update_stats = ",@internal_data); my $winner = $internal_data[0]; my $loser = $internal_data[1]; my @judoka_data; # Use DBI to connect to the judoka_csv datafile #----------------------------------------------- my $dbh = DBI->connect('dbi:AnyData(RaiseError=>1):'); # +tell DBI we want to use the Anydata module in ./MyLibs $dbh->func( 'judoka', 'CSV', 'data/judoka_csv', 'ad_catal +og'); # Connect to the users_csv data file # select from the datafile the id for the user ID from th +e array paased from the previous sub routine my $sql_query = "SELECT * FROM judoka WHERE judoka_id = ? +"; # this is the SQL command we want to execute my $sql_params = ($winner); # Th +eese are the parameteres we will use in the SQL command above print $query->p("$sql_query\n[$sql_params]\n") if $DEBUG; + # if we are in debug mode print the SQL statement my $sth = $dbh->prepare( $sql_query ); + # prepare the SQL command $sth->execute( $sql_params ); +# excecute the SQL using our parameters my @winner_data = $sth->fetchrow_array; # this line takes + the results of the select and puts it in the array called RESULTS $dbh->disconnect(); # we are done with the datbase for no +w, so disconnect from it (MAY NOT BE NECESSARY) print $query->p("result = ", @winner_data)if $DEBUG; + # Prints the result of our SQL command if we are in debug +mode. # grab the number of wins and then add one to it and inse +rt back into the DB my $wins = $winner_data[10] + 1; print $query->p("winner =",$winner," and Wins = ", $wins) +if $DEBUG; my $sql_insert ="UPDATE judoka SET wins = ? WHERE judoka_ +id = ?"; my @sql_insert_params = ($wins,$winner); print $query->p("$sql_insert\n[@sql_insert_params]\n") if + $DEBUG; # if we are in debug mode print the SQL stat +ement $sth = $dbh->prepare( $sql_insert ); +# prepare the SQL command $sth->execute( @sql_insert_params ); + # excecute the SQL using our parameters }

Please pardon the shoddy code, this is far from quality work, but you have to start somewhere right? :-)

Thanks,
Lance

Kia Kaha, Kia Toa, Kia Manawanui!
Be Strong, Be Brave, Be perservering!

Replies are listed 'Best First'.
Re^3: DBD:ANYDATA - Execution ERROR: No such column
by lwicks (Friar) on Sep 14, 2004 at 09:53 UTC
    OH DEAR

    Spotted and corrected my error!! I really was tired last night!!

    The error was that I had disconnected from the database!!!
    $dbh->disconnect();
    Just before trying to do the UPDATE!!!

    Well, goes to show that sometimes just going through the problem for someone else helps you see your mistakes!!
    Sorry for the waste of time.

    Lance

    Kia Kaha, Kia Toa, Kia Manawanui!
    Be Strong, Be Brave, Be perservering!