$this->table('t_aaa')->add(array('uid'=>123123,'id_acc'=>8888,'id'=>2200));//数据插入只有自增长的 id 可以被赋值 2200。其他的都是空值,为啥呢版本 3.23
还有怎么设置  受保护的成员 变量
protected $tableName='t_vvv';
$this->tableName='t_aaa';这样无效呢

解决方案 »

  1.   

    不是 
    $data['acc_id'] = 12;
    $data['type'] = 11;
    $data['name55'] = 33; 
    $this->fetchSql(true)->data($data)->table('t_aaa')->add();
    我这样打印出来出来的sql语句 name55 acc_id 都直接空值的
    我把name55 换成 name 就有值进来了,。
    感觉好像进了一个白名单的过滤一样,要添加不常用的字段进去才行
      

  2.   

    你看是不是字段的长度限制死了,name555保存失败
      

  3.   

    我改成password 也会有值进来的,应该不是字段长度问题
      

  4.   

    绝对不是数据表问题,在用tp之前我使用的是 简易的框架  那个都可以直接插入的,一样的表一样额数据,、和表绝对没关系,我在入库之前就打印出 sql 语句了,   直接就是空值换常用的  nama  password 这些的 字段进去 他自己就会有值,直接就能看到,
      

  5.   

    怀疑是加个  ->table('t_aaa')   这个语句后 变成 空值了  可是不加这个  没办法切换数据表,
    $this->tableName='t_aaa'; 直接这样没法赋值进去,原来声明的什么表它就打印什么表出来了
      

  6.   

    这是我在tp官方问的,http://www.thinkphp.cn/topic/55509.html麻烦大神看看 到底啥问题
      

  7.   

    给出 t_aaa 的表结构
      

  8.   

    CREATE TABLE `t_aaa` (
      `id` int(4) unsigned zerofill NOT NULL AUTO_INCREMENT,
      `uid` int(4) unsigned zerofill NOT NULL DEFAULT '0000',
      `id_acc` int(4) unsigned zerofill NOT NULL DEFAULT '0000',
      PRIMARY KEY (`id`),
      KEY `account_id` (`id_acc`)
    ) ENGINE=MyISAM AUTO_INCREMENT=425 DEFAULT CHARSET=gbk
      

  9.   

    CREATE TABLE `t_aaa` (
      `id` int(4) unsigned zerofill NOT NULL AUTO_INCREMENT,
      `uid` int(4) unsigned zerofill NOT NULL DEFAULT '0000',
      `id_acc` int(4) unsigned zerofill NOT NULL DEFAULT '0000',
      PRIMARY KEY (`id`),
      KEY `id_acc` (`id_acc`) USING BTREE
    ) ENGINE=MyISAM AUTO_INCREMENT=425 DEFAULT CHARSET=gbk