表结构如下mysql> describe workload;
+--------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| Condition | varchar(20) | NO | | | |
| ConItem | varchar(20) | YES | | NULL | |
| PaNum | varchar(20) | YES | | NULL | |
| YSK | varchar(20) | YES | | NULL | |
| SSK | varchar(20) | YES | | NULL | |
| DateFrom | varchar(50) | YES | | NULL | |
| DateTo | varchar(50) | YES | | NULL | |
| HospitalName | varchar(50) | YES | | NULL | |
+--------------+-------------+------+-----+---------+----------------+
9 rows in set (0.02 sec)
下面的sql语句有什么问题啊,
insert into workload(condition,conitem,panum,datefrom,dateto,helphosp)
values('申请科室','外科','1','2008-09-02','2008-09-13','校医院');我都看了好长时间了但就是不知道那里错了,在mysql的黑屏下执行也报错,说是语法错误。但我保证上面的输入都是在英文模式下输入的。
+--------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| Condition | varchar(20) | NO | | | |
| ConItem | varchar(20) | YES | | NULL | |
| PaNum | varchar(20) | YES | | NULL | |
| YSK | varchar(20) | YES | | NULL | |
| SSK | varchar(20) | YES | | NULL | |
| DateFrom | varchar(50) | YES | | NULL | |
| DateTo | varchar(50) | YES | | NULL | |
| HospitalName | varchar(50) | YES | | NULL | |
+--------------+-------------+------+-----+---------+----------------+
9 rows in set (0.02 sec)
下面的sql语句有什么问题啊,
insert into workload(condition,conitem,panum,datefrom,dateto,helphosp)
values('申请科室','外科','1','2008-09-02','2008-09-13','校医院');我都看了好长时间了但就是不知道那里错了,在mysql的黑屏下执行也报错,说是语法错误。但我保证上面的输入都是在英文模式下输入的。
values('申请科室','外科','1','2008-09-02','2008-09-13','校医院');
字段列表最后一个helphosp在表中未定义。
是我上面写错了,实际上这是我的sql语句,因为我是ado+vc组合,操作mysql数据库。
函数如下:
bool CUser::AddWorkLoad(WorkLoad &workload) //保存工作量统计信息
{
//数据库字符串
CString strSql;
//CDate('%s'),CDate('%s')
strSql.Format("INSERT INTO WorkLoad(Condition,ConItem,PaNum,DateFrom,DateTo,HospitalName) VALUES('%s','%s','%s','%s','%s','%s')",workload.strcondition,workload.strconitem,workload.strpanum,workload.strdatefrom,workload.strdateto,workload.HospitalName);
AfxMessageBox(strSql);
if(theApp.pAdoDb->Execute((LPCTSTR) strSql))
{
return TRUE;
}
return FALSE;}但是不知到是哪里有问题
,可我敢保证不是输入法的问题。
表中没有这个字段helphosp
+--------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| Condition | varchar(20) | NO | | | |
| ConItem | varchar(20) | YES | | NULL | |
| PaNum | varchar(20) | YES | | NULL | |
| YSK | varchar(20) | YES | | NULL | |
| SSK | varchar(20) | YES | | NULL | |
| DateFrom | varchar(50) | YES | | NULL | |
| DateTo | varchar(50) | YES | | NULL | |
| HospitalName | varchar(50) | YES | | NULL | |
+--------------+-------------+------+-----+---------+----------------+
9 rows in set (0.02 sec)
strSql.Format("INSERT INTO WorkLoad(Condition,ConItem,PaNum,DateFrom,DateTo,HospitalName) VALUES('%s','%s','%s','%s','%s','%s')",workload.strcondition,workload.strconitem,workload.strpanum,workload.strdatefrom,workload.strdateto,workload.HospitalName); 不好意思,上面写错了,误导了大家,实际上函数是这样的,我是通过函数取回那几个字段的参数,然后插入到mysql数据库中,但是就是不对,为什么呢
strSql.Format("INSERT INTO WorkLoad(`Condition`,ConItem,PaNum,DateFrom,DateTo,HospitalName) VALUES('%s','%s','%s','%s','%s','%s')",workload.strcondition,workload.strconitem,workload.strpanum,workload.strdatefrom,workload.strdateto,workload.HospitalName);