• 技术文章 >后端开发 >php教程

    thinkphp关联模型 多对多 插入 怎么使用?????

    2016-06-06 20:24:23原创678
    $u = D('user');
            $u->name = 'xiak';
            $u->password = 'qqqqqq';
            $u->shop = array(
                    'gg' => '1',
                );
            $u->relation(true)->add($data);
    user(id, name)
    shop(id, name)
    user_shop(user_id,shop_id)
    class UserModel extends RelationModel {
        protected $_link = array(
            'shop' => array(
                'mapping_type' => self::MANY_TO_MANY,
                'relation_table' => '__USER_SHOP__',
                                )
                           }

    怎么没有效果啊?

    sql调试是这样的:

    [user] SHOW COLUMNS FROM `tb_user` (executeTime: 0.009001s )
     [user] INSERT INTO `tb_user` (`name`,`password`) VALUES ('xiak','qqqqqq') (executeTime: 0.117007s )
     [shop] SHOW COLUMNS FROM `tb_shop` (executeTime: 0.013001s )
     [shop] INSERT INTO tb_user_shop (user_id,shop_id) SELECT a.id,b.id FROM tb_user AS a ,tb_shop AS b where a.id =45 AND b.id IN (1) (executeTime: 0.001000s )

    手册上说 当MANY_TO_MANY时,不建议使用关联插入。是什么意思啊?

    回复内容:

    $u = D('user');
            $u->name = 'xiak';
            $u->password = 'qqqqqq';
            $u->shop = array(
                    'gg' => '1',
                );
            $u->relation(true)->add($data);
    user(id, name)
    shop(id, name)
    user_shop(user_id,shop_id)
    class UserModel extends RelationModel {
        protected $_link = array(
            'shop' => array(
                'mapping_type' => self::MANY_TO_MANY,
                'relation_table' => '__USER_SHOP__',
                                )
                           }

    怎么没有效果啊?

    sql调试是这样的:

    [user] SHOW COLUMNS FROM `tb_user` (executeTime: 0.009001s )
     [user] INSERT INTO `tb_user` (`name`,`password`) VALUES ('xiak','qqqqqq') (executeTime: 0.117007s )
     [shop] SHOW COLUMNS FROM `tb_shop` (executeTime: 0.013001s )
     [shop] INSERT INTO tb_user_shop (user_id,shop_id) SELECT a.id,b.id FROM tb_user AS a ,tb_shop AS b where a.id =45 AND b.id IN (1) (executeTime: 0.001000s )

    手册上说 当MANY_TO_MANY时,不建议使用关联插入。是什么意思啊?

    难道就没有人跟我一样,觉得分拆SQL再加事务才是最好的方案吗,关联的SQL其它人看起来是不是很受罪呢

    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    ThinkPHP6基础与实战:点击学习

    课程从基础到实战详细分析讲解

    专题推荐:php thinkphp
    上一篇:怎么给类中的属性赋值? 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• PHP底层的运行机制与原理_PHP教程• 说一说PHP程序开发中的模板选择_PHP• 程序修改有关问题• js表单提交解决方法• 极奇怪的,晓得bug在哪里,但不知道为何会出现这bug
    1/1

    PHP中文网