This is what happens when i start up

Heres where the crash report stopped.
Code:
void ObjectMgr::LoadTrainers()
{
QueryResult * result = WorldDatabase.Query("SELECT * FROM trainer_defs");
QueryResult * result2;
Field * fields2;
const char * temp;
size_t len;
LoadDisabledSpells();
if(!result)
return;
do
{
Field * fields = result->Fetch();
uint32 entry = fields[0].GetUInt32();
Trainer * tr = new Trainer;
tr->RequiredSkill = fields[1].GetUInt32();
tr->RequiredSkillLine = fields[2].GetUInt32();
tr->RequiredClass = fields[3].GetUInt32();
tr->RequiredRace = fields[4].GetUInt32();
tr->RequiredRepFaction = fields[5].GetUInt32();
tr->RequiredRepValue = fields[6].GetUInt32();
tr->TrainerType = fields[7].GetUInt32();
tr->Can_Train_Gossip_TextId = fields[9].GetUInt32();
tr->Cannot_Train_GossipTextId = fields[10].GetUInt32();
tr->UIMessage = (char*)NormalTalkMessage;
if(!tr->Can_Train_Gossip_TextId)
tr->Can_Train_Gossip_TextId=1;
if(!tr->Cannot_Train_GossipTextId)
tr->Cannot_Train_GossipTextId=1;
temp = fields[8].GetString();
--> len=strlen(temp);
if(len)
{
tr->UIMessage = new char[len+1];
strcpy(tr->UIMessage, temp);
tr->UIMessage[len] = 0;
}
//now load the spells
[--> = Drag Arrow ] hover over it and it says "This is the next statement that will be executed. To change what statement is executed next, drag the arrow. This may have unintended consequences."
Anyway, im not sure what to do here. Any help would be appreciated.
Edit: maybe the name should be with Trainer_defs? :x
Edit2: After emptying the trainer_def's table the server started up properly. But i'd like to have trainers still
Edit3: fixt