DataBase_IsErrorOccur = FALSE; if (NULL == mysql_init(&st_MySQL))
{
DataBase_IsErrorOccur = TRUE;
DataBase_dwErrorCode = ERROR_HELPCOMPONENTS_DATABASE_MYSQL_CONNECT_MYSQL;
return FALSE;
}
//设置连接超时
if (0 != mysql_options(&st_MySQL,MYSQL_OPT_CONNECT_TIMEOUT,(char *)&nTimeOut))
{
DataBase_IsErrorOccur = TRUE;
DataBase_dwErrorCode = ERROR_HELPCOMPONENTS_DATABASE_MYSQL_CONNECT_SETTIMEOUT;
return FALSE;
}
//连接服务器
if (NULL == mysql_real_connect(&st_MySQL,pSt_MySQLConnector->tszHostAddr,pSt_MySQLConnector->tszName,pSt_MySQLConnector->tszPassWord,pSt_MySQLConnector->tszDBName,pSt_MySQLConnector->nPort,NULL,0))
{
DataBase_IsErrorOccur = TRUE;
DataBase_dwErrorCode = ERROR_HELPCOMPONENTS_DATABASE_MYSQL_CONNECT_ISFAILED;
return FALSE;
}
//设置连接字符集,默认为utf8
if (0 != mysql_set_character_set(&st_MySQL,"utf8"))
{
//如果设置字符集不成功,则关闭连接
DataBase_IsErrorOccur = TRUE;
DataBase_dwErrorCode = ERROR_HELPCOMPONENTS_DATABASE_MYSQL_CONNECT_SETCHAR;
return FALSE;
}
if (0 != mysql_autocommit(&st_MySQL,0))
{
printf("数据库执行错误:%s\n",mysql_error(&st_MySQL));
return FALSE;
}
上面是链接代码,下面是插入代码,哪儿设置有问题 ,用不用批量提交都一样的效果! 怎么回事呢? DataBase_IsErrorOccur = FALSE;
pthread_mutex_lock(&st_csDatabase);
//执行SQL语句
static int i = 0;
if (0 != mysql_query(&st_MySQL,lpszSQLQuery))
{
printf("数据库执行错误:%s,内容:\n%s\n",mysql_error(&st_MySQL),lpszSQLQuery);
DataBase_IsErrorOccur = TRUE;
DataBase_dwErrorCode = ERROR_HELPCOMPONENTS_DATABASE_MYSQL_EXEC_EXECUTE;
pthread_mutex_unlock(&st_csDatabase);
return FALSE;
}
if (i >= 10000)
{
mysql_commit(&st_MySQL);
i = 0;
}
pthread_mutex_unlock(&st_csDatabase);
return TRUE;
{
DataBase_IsErrorOccur = TRUE;
DataBase_dwErrorCode = ERROR_HELPCOMPONENTS_DATABASE_MYSQL_CONNECT_MYSQL;
return FALSE;
}
//设置连接超时
if (0 != mysql_options(&st_MySQL,MYSQL_OPT_CONNECT_TIMEOUT,(char *)&nTimeOut))
{
DataBase_IsErrorOccur = TRUE;
DataBase_dwErrorCode = ERROR_HELPCOMPONENTS_DATABASE_MYSQL_CONNECT_SETTIMEOUT;
return FALSE;
}
//连接服务器
if (NULL == mysql_real_connect(&st_MySQL,pSt_MySQLConnector->tszHostAddr,pSt_MySQLConnector->tszName,pSt_MySQLConnector->tszPassWord,pSt_MySQLConnector->tszDBName,pSt_MySQLConnector->nPort,NULL,0))
{
DataBase_IsErrorOccur = TRUE;
DataBase_dwErrorCode = ERROR_HELPCOMPONENTS_DATABASE_MYSQL_CONNECT_ISFAILED;
return FALSE;
}
//设置连接字符集,默认为utf8
if (0 != mysql_set_character_set(&st_MySQL,"utf8"))
{
//如果设置字符集不成功,则关闭连接
DataBase_IsErrorOccur = TRUE;
DataBase_dwErrorCode = ERROR_HELPCOMPONENTS_DATABASE_MYSQL_CONNECT_SETCHAR;
return FALSE;
}
if (0 != mysql_autocommit(&st_MySQL,0))
{
printf("数据库执行错误:%s\n",mysql_error(&st_MySQL));
return FALSE;
}
上面是链接代码,下面是插入代码,哪儿设置有问题 ,用不用批量提交都一样的效果! 怎么回事呢? DataBase_IsErrorOccur = FALSE;
pthread_mutex_lock(&st_csDatabase);
//执行SQL语句
static int i = 0;
if (0 != mysql_query(&st_MySQL,lpszSQLQuery))
{
printf("数据库执行错误:%s,内容:\n%s\n",mysql_error(&st_MySQL),lpszSQLQuery);
DataBase_IsErrorOccur = TRUE;
DataBase_dwErrorCode = ERROR_HELPCOMPONENTS_DATABASE_MYSQL_EXEC_EXECUTE;
pthread_mutex_unlock(&st_csDatabase);
return FALSE;
}
if (i >= 10000)
{
mysql_commit(&st_MySQL);
i = 0;
}
pthread_mutex_unlock(&st_csDatabase);
return TRUE;
解决方案 »
- 求助,求一mysql查询表达式
- 请教一个MYSQL的存储过程和游标的问题
- 急!!!!!!!!!安装MySQL时无法启动服务(could not start the service MYSQL .Error:0)
- 求改mysql语句
- mysqld --console出错
- 请问MYSQL数据库如何导出某表为XLS文件
- 在window 2000 server 上安装mysql后,正常启动时初始化用户为:test密码为:test为什么在次登录的时候就不用密码也能登录为什么?60
- 创建不同的用户存储信息,是在数据库可创建表空间,还是在创建个数据库
- 这样将数据插入到已经建好的基本表里?
- 请问在mysql下面如何删除两个以上的分类?
- MySQL如何大批量更新?
- mysql如何分离数字和字符?
我还以为比 mysql_real_query 快的多 结果是一样的。
INSERT INTO `data_session_2013-08-09` (`probe_id`,`src_mac`,`dst_mac`,`src_ip`,`dst_ip`,`src_name`,`dst_name`,`dst_equip_type`,`dst_app_id`,`ip_version`,`ip_tunnel`,`src_port`,`dst_port`,`proto_type`,`proto_sub_type`,`operation`,`log_type`,`log_level`,`opstatus`,`rule_id`,`group_id`,`rulekeyword`,`src_accounts`,`password`,`log_time`,`url`,`str_time`) VALUES('00110A63D088','94DE805033EA','001C54096111','192.168.16.240','183.60.3.126','233','183.60.3.126','0','0','0','0','39957','80','5','508','1','0','1','1','','','','5555555','','1375411294','web2.qq.com','2013-8-2 10:41:34')