新之心

新之心

这家伙有点懒,还没写个性签名!

  • 财富值60
  • 威望值0
  • 总积分200

个人信息

  • 2018-04-12 已签到
    连续签到1天,获得了5个金钱
  • 2017-10-09 已签到
    连续签到1天,获得了5个金钱
  • 直接百度下,php时间友好显示

  • $str=str_replace("
    ","",$str);
    //$str=htmlspecialchars($str);
    return strip_tags($str);

  • 2017-07-27 已签到
    连续签到2天,获得了10个金钱
  • 2017-07-26 已签到
    连续签到1天,获得了5个金钱
  • 回复了 的回答

    代码贴全点.

    加了事务嵌套,大兄弟,有空帮忙看下哈

  • function actionShiwu() {

        // 外部事务
        $connection =Yii::$app->db;
        $transaction1 = $connection->beginTransaction();
        $arr =explode(',', 'http://www.baidu.com,http://www.baidu44.com,http://www.99l.com');
        $name ='印度';
        $number=22;
        try {
            $sql1 ="update country set name='{$name}' where code='IN'";
            $a=$connection->createCommand($sql1)->execute();
            if(!$a){
                throw new \Exception('修改失败');
            }
            // 内部事务
            $transaction2 = $connection->beginTransaction();
            try {
                $result = Yii::$app->db->createCommand("
                            CREATE TABLE `b_{$number}` (
                            `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键',
                            `name` varchar(255) DEFAULT NULL COMMENT '名称',
                            `domain` varchar(255) DEFAULT '' COMMENT '域名',
                            `is_delete` int(10) DEFAULT '0',
                            PRIMARY KEY (`id`),
                            UNIQUE KEY `domain` (`domain`)
                            ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='b表_{$number}';
                           ")->execute();
                foreach ($arr as $k=>$v){
                    $data[] = '("' . 'null' . '", "' . '' . '", "' . $v . '", "' .'0'. '")';
                }
                $query = "INSERT INTO b_{$number} (id,name,domain,is_delete)VALUES" .
                    implode(',', $data);
                $webDomainSamData=$connection->createCommand($query)->execute();
                if(!$webDomainSamData){
                    throw new \Exception('添加任务网址失败');
                }
                $transaction2->commit();
            } catch (\Exception $e) {
                throw  $e;
                $transaction2->rollBack();
            }
            $transaction1->commit();
        } catch (\Exception $e) {
            throw  $e;
            $transaction1->rollBack();
        }
      
    }
    

    //数据表
    DROP TABLE IF EXISTS country;
    CREATE TABLE country (
    code char(2) NOT NULL,
    name char(52) NOT NULL,
    population int(11) NOT NULL DEFAULT '0',
    PRIMARY KEY (code)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    -- Records of country

    INSERT INTO country VALUES ('AU', 'Australia', '18886000');
    INSERT INTO country VALUES ('BR', 'Brazil', '170115000');
    INSERT INTO country VALUES ('CA', 'Canada', '1147000');
    INSERT INTO country VALUES ('CN', 'China', '1277558000');
    INSERT INTO country VALUES ('DE', 'Germany', '82164700');
    INSERT INTO country VALUES ('FR', 'France', '59225700');
    INSERT INTO country VALUES ('GB', 'United Kingdom', '59623400');
    INSERT INTO country VALUES ('IN', '印度333', '1013662000');
    INSERT INTO country VALUES ('RU', 'Russia', '146934000');
    INSERT INTO country VALUES ('US', 'U.S.A', '278357000');

    返回错误
    Database Exception – yii\db\Exception

    SQLSTATE[42000]: Syntax error or access violation: 1305 SAVEPOINT LEVEL1 does not exist
    The SQL being executed was: RELEASE SAVEPOINT LEVEL1
    Error Info: Array
    (

    [0] => 42000
    [1] => 1305
    [2] => SAVEPOINT LEVEL1 does not exist
    

    )

    Caused by: PDOException

    SQLSTATE[42000]: Syntax error or access violation: 1305 SAVEPOINT LEVEL1 does not exist

    in D:\phpStudy\WWW\demo\vendor\yiisoft\yii2\db\Command.php at line 842

  • 回复了 的回答

    事务开始和回滚呢?

    在上边已经开启过了,是可以通过,加了这个创建和插入新创建的表的数据功能,模拟下错误就不行

  • 回复了 的回答

    在catch里打印错误啊 echo array_values($model->getFirstErrors())[0];exit;

    错误还是能看到的,http://www.jb51.net/article/40656.htm 发现含有里边的DDL语句会自动触发commit

见习主管 等级规则
200/500
资料完整度
20/100
用户活跃度
0/100

Ta的关注

2

Ta的粉丝

0

Ta的访客

2