免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1686 | 回复: 5
打印 上一主题 下一主题

一运行MYSQL的程序就Aborted [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-19 10:57 |只看该作者 |倒序浏览
//database.h

#ifndef DATABASE_H
#define DATABASE_H

#include <mysql/mysql.h>;
#include <string>;

using namespace std;

class database_c
{
  MYSQL _mysql;
  MYSQL_RES * _res;
  string _database_name;
  string _host;
  string _user_name;
  string _password;

public:
  database_c(string a_database_name, string a_host, string a_user_name, string a_password);
  ~database_c();
  bool connect();
  MYSQL_RES * query(string a_query);
  void close();
   
};
#endif


//database.cpp

#include "database.h"

#define Debug(x)  printf(x);

database_c::database_c(string a_database_name, string a_host, string a_user_name, string a_password)
{
  Debug("begin init 0";
  _database_name = a_database_name;
  _host = a_host;
  _user_name = a_user_name;
  _password = a_password;
  Debug("begin init";
  if(!mysql_init(&_mysql))
  {
    Debug("error init mysql";
  }
  Debug("end init";
  connect();
  
}

database_c::~database_c()
{
  close();
}

bool database_c::connect()
{
  if(!mysql_real_connect(&_mysql, _host.c_str(), _user_name.c_str(), _password.c_str(), _database_name.c_str(), 0, NULL, 0))
  {
    Debug("error connect to database";
  }
}

MYSQL_RES *database_c::query(string a_query)
{
  if(mysql_query(&_mysql, a_query.c_str()))
  {
    Debug("query error";
  }
  Debug("query Ok";
  return NULL;
}

void database_c::close()
{
  mysql_close(&_mysql);
  Debug("closed";
}

//main.cpp

///#include <mysql/mysql.h>;
#include "database.h"
#include <iostream>;

using namespace std;

int main()
{
        database_c db("music", NULL, "root", "temp";
//      db.query("select * from menuitem";
  cout << "hello world" << endl;

}

//Makefile

clean:
        rm -f *.o
all: main.o database.o
        g++ -o db main.o database.o -L/usr/lib -lmysqlclient
main.o: main.cpp
        g++ -c -g main.cpp
database.o: database.cpp
        g++ -c -g database.cpp


//
make过程序没有问题.但是一运行就出现Aborted.
当去掉
database_c db("music", NULL, "root", "temp");
后.就不会有Abort出现.
请各位大侠帮忙一下.

论坛徽章:
62
2016科比退役纪念章
日期:2016-06-28 17:45:06奥兰多魔术
日期:2015-05-04 22:47:40菠菜神灯
日期:2015-05-04 22:35:07菠菜神灯
日期:2015-05-04 22:35:02NBA季后赛大富翁
日期:2015-05-04 22:33:34NBA常规赛纪念章
日期:2015-05-04 22:32:032015年亚洲杯纪念徽章
日期:2015-04-14 16:54:452015年亚洲杯之朝鲜
日期:2015-03-19 23:03:16明尼苏达森林狼
日期:2015-03-16 21:51:152015小元宵徽章
日期:2015-03-06 15:57:202015年迎新春徽章
日期:2015-03-04 09:55:282015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2005-09-19 11:03 |只看该作者

一运行MYSQL的程序就Aborted

程序运行出错后,Debug 函数里面要退出。
继续运行当然会core down

论坛徽章:
0
3 [报告]
发表于 2005-09-19 11:30 |只看该作者

一运行MYSQL的程序就Aborted

已经找到原因了.
是NULL的问题.
将database_c db("music", NULL改成是"localhost"就可以了.

论坛徽章:
62
2016科比退役纪念章
日期:2016-06-28 17:45:06奥兰多魔术
日期:2015-05-04 22:47:40菠菜神灯
日期:2015-05-04 22:35:07菠菜神灯
日期:2015-05-04 22:35:02NBA季后赛大富翁
日期:2015-05-04 22:33:34NBA常规赛纪念章
日期:2015-05-04 22:32:032015年亚洲杯纪念徽章
日期:2015-04-14 16:54:452015年亚洲杯之朝鲜
日期:2015-03-19 23:03:16明尼苏达森林狼
日期:2015-03-16 21:51:152015小元宵徽章
日期:2015-03-06 15:57:202015年迎新春徽章
日期:2015-03-04 09:55:282015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2005-09-19 11:44 |只看该作者

一运行MYSQL的程序就Aborted

这个不是引起Aborted的原因。
出错是因为connect失败了,程序还进行,在query的时候core down了

论坛徽章:
0
5 [报告]
发表于 2005-09-19 13:28 |只看该作者

一运行MYSQL的程序就Aborted

请搂上大侠解释一下.什么是CORE DOWN?
谢谢.

论坛徽章:
62
2016科比退役纪念章
日期:2016-06-28 17:45:06奥兰多魔术
日期:2015-05-04 22:47:40菠菜神灯
日期:2015-05-04 22:35:07菠菜神灯
日期:2015-05-04 22:35:02NBA季后赛大富翁
日期:2015-05-04 22:33:34NBA常规赛纪念章
日期:2015-05-04 22:32:032015年亚洲杯纪念徽章
日期:2015-04-14 16:54:452015年亚洲杯之朝鲜
日期:2015-03-19 23:03:16明尼苏达森林狼
日期:2015-03-16 21:51:152015小元宵徽章
日期:2015-03-06 15:57:202015年迎新春徽章
日期:2015-03-04 09:55:282015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2005-09-19 13:34 |只看该作者

一运行MYSQL的程序就Aborted

core dump
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP