// Create field factory
                        $art_field_fact = new ArtifactFieldFactory($at);
                        if ($art_field_fact->isError()) {
                            exit_error($Language->getText('global', 'error'), $art_field_fact->getErrorMessage());
                        }
                        // Let's create the project database if it does not exist
                        // Drop the existing table and create a fresh one
                        db_project_create($dbname);
                        db_project_query($dbname, 'DROP TABLE IF EXISTS ' . $tbl_name);
                        $sql_create = "CREATE TABLE {$tbl_name} (" . 'artifact_id INTEGER, field_name VARCHAR(255), ' . 'old_value TEXT, new_value TEXT, mod_by VARCHAR(255), email TEXT, date DATETIME, ' . 'type VARCHAR(255), ' . 'label VARCHAR(255) ' . ')';
                        $res = db_project_query($dbname, $sql_create);
                        // extract data from the bug table and insert them into
                        // the project database table
                        if ($res) {
                            $result = extract_history($atid);
                            while ($arr = db_fetch_array($result)) {
                                prepare_artifact_history_record($at, $art_field_fact, $arr);
                                insert_record_in_table($dbname, $tbl_name, $col_list, $arr);
                            }
                        } else {
                            $feedback .= $Language->getText('project_export_artifact_deps_export', 'create_proj_err', array($tbl_name, db_project_error()));
                        }
                    }
                    // for
                }
            } else {
                $feedback .= $Language->getText('project_export_artifact_deps_export', 'security_violation', $dbname);
            }
        }
    }
}
예제 #2
0
function insert_record_in_table($dbname, $tbl_name, $col_list, $record)
{
    global $Language;
    // Generate the values list for the INSERT statement
    reset($col_list);
    $values = '';
    while (list(, $col) = each($col_list)) {
        $values .= '\'' . addslashes($record[$col]) . '\',';
    }
    // remove excess comma at the end
    $values = substr($values, 0, -1);
    $sql_insert = "INSERT INTO {$tbl_name} VALUES ( {$values} )";
    $res_insert = db_project_query($dbname, $sql_insert);
    if (!$res_insert) {
        $feedback .= $Language->getText('project_export_utils', 'ins_err', array($tbl_name, db_project_error())) . " - ";
    }
}