// 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); } } } }
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())) . " - "; } }