php – 使用Yii2在sqlserver中选择Schema和table?
发布时间:2020-05-26 01:54:42 所属栏目:PHP 来源:互联网
导读:我有sql server数据库,它有多个架构.我尝试使用sqlsrv驱动程序从不同模式的表中选择一个,但是表示无效配置,该表不存在. 如何使用sqlsrv驱动程序在表中选择架构? MyConnection的 ?php return [ class = yiidbConnection, dsn = sqlsrv:Server=192.
|
我有sql server数据库,它有多个架构.我尝试使用sqlsrv驱动程序从不同模式的表中选择一个,但是表示无效配置,该表不存在.
MyConnection的 <?php
return [
'class' => 'yiidbConnection','dsn' => 'sqlsrv:Server=192.168.10.70;Database=mydatabase',// MS SQL Server,sqlsrv driver public ip
'username' => 'user_username','password' => 'user_password','charset' => 'utf8',];
?>
我的模特 <?php
namespace appmodels;
use Yii;
use yiidbActiveRecord;
class Transaction extends yiidbActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'schema2.transaction';
}
public static function getDb()
{
return Yii::$app->db3; // use the "db3" application component
}
/**
* @inheritdoc
*/
public function rules()
{
return [[['id','number','amount','date','status','description'],'required']];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => Yii::t('app','Uid'),'number' => Yii::t('app','Number'),'date' => Yii::t('app','Date'),'amount' => Yii::t('app','Amount'),'description' => Yii::t('app','Item Description'),'status' => Yii::t('app','status'),];
}
}
?>
MS SQL中的完整表名包含三个部分:架构,所有者和表名,例如:
dbo.user1.table1 这意味着table1是由架构dbo中的user1创建的. 如果您不知道所有者或者它是默认用户(sa),您可以像这样传递: dbo..table1 所以我建议你尝试一下 return 'schema2..transaction'; 要么 return 'schema2.YOUR_USER_NAME_HERE.transaction'; 正确解析不同架构的表名. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
