表的结构如下
CREATE TABLE `t_s_ags_log` (
`tran_time` datetime NOT NULL COMMENT '交易时间',
`tran_no` char(5) default NULL COMMENT '交易码',
`tran_name` varchar(128) default NULL COMMENT '交易名称',
`tran_src_ip` char(15) default NULL COMMENT '发起方IP',
`res_code` char(2) NOT NULL COMMENT '响应码',
`tran_pkg` varchar(1024) default NULL COMMENT '交易报文',
PRIMARY KEY (`tran_time`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 COMMENT='AGS交易日志表 ';插入之前用了 set names 'gb2312'//代码如下
strcpy(sSql,"insert into t_s_ags_log values('2007-12-03 11:55:41','91008','测试通讯','192.168.0.168','00','91008')");
if( 0 != mysql_real_query(&mysql,sSql,(unsigned int)strlen(sSql)))
{
printf("%s\n",mysql_error(&mysql) );
}
我运行之后不报错,返回值为0,说明执行成功了。
可数据库里并没有插入任何值,跟没运行一样。
而如果我把'测试通讯'替换成英文或数字,程序就插入成功了。
我在MySql-Front中直接运行这条语句,就可以直接插入,这是怎么会事??
小弟刚参加工作,经验还很少
各位前辈,请指教。
CREATE TABLE `t_s_ags_log` (
`tran_time` datetime NOT NULL COMMENT '交易时间',
`tran_no` char(5) default NULL COMMENT '交易码',
`tran_name` varchar(128) default NULL COMMENT '交易名称',
`tran_src_ip` char(15) default NULL COMMENT '发起方IP',
`res_code` char(2) NOT NULL COMMENT '响应码',
`tran_pkg` varchar(1024) default NULL COMMENT '交易报文',
PRIMARY KEY (`tran_time`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 COMMENT='AGS交易日志表 ';插入之前用了 set names 'gb2312'//代码如下
strcpy(sSql,"insert into t_s_ags_log values('2007-12-03 11:55:41','91008','测试通讯','192.168.0.168','00','91008')");
if( 0 != mysql_real_query(&mysql,sSql,(unsigned int)strlen(sSql)))
{
printf("%s\n",mysql_error(&mysql) );
}
我运行之后不报错,返回值为0,说明执行成功了。
可数据库里并没有插入任何值,跟没运行一样。
而如果我把'测试通讯'替换成英文或数字,程序就插入成功了。
我在MySql-Front中直接运行这条语句,就可以直接插入,这是怎么会事??
小弟刚参加工作,经验还很少
各位前辈,请指教。
mysql_real_query(&mysql,sSql,(unsigned int)strlen(sSql));//就用到这里 strcpy(sSql,"insert into t_s_ags_log values('2007-12-03 11:55:41','91008','测试通讯','192.168.0.168','00','91008')");
你的源代码文件编码是不是GB2312?即这句代码中的测试通讯编码是不是GB2312的?
strcpy(sSql,"insert into t_s_ags_log values('2007-12-03 11:55:41','91008','测试通讯','192.168.0.168','00','91008')");