ホームページ > バックエンド開発 > PHPチュートリアル > thinkphp关联模型 多对多 插入 怎么使用?????

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

WBOY
リリース: 2016-06-06 20:24:23
オリジナル
1434 人が閲覧しました

<code>$u = D('user');
        $u->name = 'xiak';
        $u->password = 'qqqqqq';
        $u->shop = array(
                'gg' => '1',
            );
        $u->relation(true)->add($data);</code>
ログイン後にコピー
ログイン後にコピー
<code>user(id, name)
shop(id, name)
user_shop(user_id,shop_id)</code>
ログイン後にコピー
ログイン後にコピー
<code>class UserModel extends RelationModel {
    protected $_link = array(
        'shop' => array(
            'mapping_type' => self::MANY_TO_MANY,
            'relation_table' => '__USER_SHOP__',
                            )
                       }</code>
ログイン後にコピー
ログイン後にコピー

怎么没有效果啊?

sql调试是这样的:

<code>[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 )</code>
ログイン後にコピー
ログイン後にコピー

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

回复内容:

<code>$u = D('user');
        $u->name = 'xiak';
        $u->password = 'qqqqqq';
        $u->shop = array(
                'gg' => '1',
            );
        $u->relation(true)->add($data);</code>
ログイン後にコピー
ログイン後にコピー
<code>user(id, name)
shop(id, name)
user_shop(user_id,shop_id)</code>
ログイン後にコピー
ログイン後にコピー
<code>class UserModel extends RelationModel {
    protected $_link = array(
        'shop' => array(
            'mapping_type' => self::MANY_TO_MANY,
            'relation_table' => '__USER_SHOP__',
                            )
                       }</code>
ログイン後にコピー
ログイン後にコピー

怎么没有效果啊?

sql调试是这样的:

<code>[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 )</code>
ログイン後にコピー
ログイン後にコピー

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

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート