表结构如下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的黑屏下执行也报错,说是语法错误。但我保证上面的输入都是在英文模式下输入的。

解决方案 »

  1.   

     Description+ you have an error in you mysql server version for the right syntax to use near 'condition,conitem,panum,datafrom,datato,hospitalname) values('申请科室','外科',''at line 1
      

  2.   

    insert into workload(condition,conitem,panum,datefrom,dateto,helphosp) 
    values('申请科室','外科','1','2008-09-02','2008-09-13','校医院'); 
    字段列表最后一个helphosp在表中未定义。
      

  3.   

    另外sql语句中使用了非英文半角逗号  values('申请科室','外科',
      

  4.   

    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);
    是我上面写错了,实际上这是我的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;}但是不知到是哪里有问题
    ,可我敢保证不是输入法的问题。
      

  5.   


    表中没有这个字段helphosp
      

  6.   

    表结构如下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) 
    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数据库中,但是就是不对,为什么呢
      

  7.   

    condition是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);