检查DAO中的DropTable是否成功

时间:2015-12-01 15:50:18

标签: php yii2 dao

我正在执行这样的查询:

Yii::$app->db->createCommand()->dropTable($r)

我一直在使用execute() http://www.yiiframework.com/doc-2.0/yii-db-command.html#dropTable()-detail这样做,但我不确定文档是否应该这样做。我特别希望返回在此实例中删除表的成功或失败。什么是正确的方法?我看到执行只会返回受影响的行数?

1 个答案:

答案 0 :(得分:2)

是执行返回行影响的数量。在这种情况下,一行会受到影响。为了更好的错误管理,您还可以管理错误情况

添加

use yii\base\Exception;
use yii\web\NotFoundHttpException;

和你的功能添加

    try {
     Yii::$app->db->createCommand()->dropTable($r)->execute();
    }
    catch (\yii\db\Exception $e) {
        // yii db exception 
        $populateError =  $e->getMessage();
    }
    catch (\Exception $e) {
        // not a db exception
        $populateError = $e->getMessage();
    }

这样,如果您有错误(例如:要删除的表不存在),您可以进行管理。