Women in Technology

Hear us Roar

  Relational Modeling of Biological Data: Trees and Graphs
Subject:   fetch() without execute() error in Example 1
Date:   2003-06-14 16:24:32
From:   gee
I've been looking most of the day for a script like the one in Example 1 (converting adjacency list to nested set) to fix a mysql table that I fubared this morning.

Fortunately, I had the foresight to track parent id's as well as record left and right id's thinking I might need to repair a mistake sometime. Unfortunately, I can't get the script in Example 1 to run correctly.

The error I get is:
DBD::mysql::st fetchrow_array failed: fetch() without execute() at ./fixnest line 33.

I have determined error occurs once the script begins to process a leaf node -- one that does not have any children. After that, I confess I am stumped, this being my first exposure to the DBI module.

Has anyone else encountered this problem? If so, is there a workaround to suggest? At the very least, is there a confirmed case of the script above working (perhaps there is a line left out in the published version)?

Thanks in advance for any help -- feel free to write direct to geestarr at the domain geedev dot com. I'll summarize any solutions here.

Full Threads Oldest First

Showing messages 1 through 3 of 3.

  • fetch() without execute() error in Example 1
    2003-06-15 11:49:37  anonymous2 [View]

    Aaron generously offered a solution via email:

    In the script, replace the following line:

    while(my ($id) = $children->fetchrow_array) {

    With this:

    for my $row (@{$children->fetchall_arrayref}) {
    my ($id) = @$row;

    Thanks, Aaron!
    • fetch() without execute() error in Example 1
      2004-01-11 11:31:44  anonymous2 [View]

      It took several days(more than a week) on a pentium-4 freebsd machine to run this code for entire ncbi taxonomy. Is there anything I should check with my MySql or table structure? I have indexed the taxon_id and the parent_id.
      • fetch() without execute() error in Example 1
        2006-02-06 10:55:01  Aaron Mackey | [View]

        The $children statement needs an additional clause, as follows:

        my $children = $dbh->prepare("SELECT id
        FROM taxon
        WHERE parent_id = ?
        AND id <> parent_id");