遇到一个奇怪的问题.
我的mysql安装在/usr/local/mysql下.我把/usr/local/mysql/var移动到/root/mypro/src下,并创建了一个超连接var,放在/usr/local/mysql下
my.cnf的database配置为/usr/local/mysql/var.能连接到数据库
在我的程序中,myslq_real_connect连接数据库正确,我用mysql_query查找数据库也正确,但是当我用mysql_query插入数据的时候,执行程序正确,返回0,且mysql_affected_rows返回1(影响一行)也正确.但是我从终端中进入数据库,通过select语句看的时候,该表是空的,并没有插入成功.这是为什么呢?
谢谢了!

解决方案 »

  1.   

    有无TRIGGER,SQL语句贴出来看看,
      

  2.   

    TRIGGER是什么??
    insert into operate_log values('01','01','20090515103824','9999','0','005','-');
    我在终端中执行是正确的,也能查到.
    问题是我在程序中执行后,mysql_affected_rows显示也正确,返回1行被影响.
      

  3.   

    如果有有主键重复了,那执行该语句后也是返回成功,mysql_affected_rows也是1吗?
      

  4.   

    停止MYSQL,再启动MYSQL服务,查询表,是否有记录
      

  5.   

    估计是时间上的不同步。语句提交后没有立即写到表中。你是不是用了事务。你可以直接用 flush table operate_log 试下,如果能看到,则说明你的语句更新了,担只是在log中还没有写入到数据文件。
      

  6.   

    我测试了.有时候记录停止MYSQL,再启动MYSQL服务,查询表,有记录.
    但是有时候就没有.
    程序中执行语句后都是返回成功,mysql_affected_rows也是1.
    请问还会是什么别的原因吗?
      

  7.   

    又测试了下,停止MYSQL,再启动MYSQL服务和flush table operate_log 都没有用.
    问题还存在
      

  8.   

    表引擎是什么?事务打开没有?在服务器上直接运行SQL语句,是否有
    此问题
      

  9.   

    你的C程序中有没有提交事务?或者在C中flush tables 强制写入数据。
      

  10.   

    提交事务是什么呢?
    我看了创造表的sql语句,只是简单的
    create table login
    {
            code varchar(6) not null
    }
    这种语句.我的程序中连接数据库的地方就是:
    1.mysql_init
    2.mysql_real_connect
    3.mysql_query
    4.mysql_close