我正在考虑执行这样的查询:
Yii::$app->db->createCommand()->dropTable($r)
我一直在使用execute()
http://www.yiiframework.com/doc-2.0/yii-db-command.html#dropTable()-详细信息,但从文件中我不确定我是否应该这样做。我特别想返回在这种情况下丢弃表的成功或失败。正确的方法是什么?我看到execute似乎只返回受影响的行数?
是的,execute返回影响的行数。在这种情况下,一行会受到影响。为了更好地管理错误,您还可以管理错误情况
添加
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();
}
通过这种方式,如果您有错误(例如:要删除的表不存在),您可以对其进行管理。