thinkphp5 - thinkPHP 是不是 D() model.class 和 Controller.class 里数据库参数的优先级问题.
程序员文章站
2022-06-06 19:30:04
...
model:
class classoneModel extends Model
{
protected $trueTableName = ''; //前缀+表名;
protected $dbName = 'ybdbcjd'; //库名,也可以从配置文件,或者 D() 参数设置;
}
Controller:
public function select_()
{
$use=D('classone','','mysql://root16656:@localhost/ybdbchfjhfjjds');
$db=$use->select();
echo '';print_r($db);echo '
';
}
public function select_()
{
$use=D('classone','qqqqqqqqqqqqqqqqqqqqqq','mysql://root16656:@localhost/ybdbchfjhfjjds');
$db=$use->select();
echo '';print_r($db);echo '
';
}
Controller这个库名ybdbchfjhfjjds,是我乱换的,按理说,应该出错,但是居然成功了!可以正常搜索到数据,所以说,库没有被覆盖,依然是 model 的库,
而下面的例子,前缀我写了个qqqqqqqqqqqqq,就搜不到数据了,
请问这个什么时候会被覆盖,什么时候不被覆盖?
回复内容:
model:
class classoneModel extends Model
{
protected $trueTableName = ''; //前缀+表名;
protected $dbName = 'ybdbcjd'; //库名,也可以从配置文件,或者 D() 参数设置;
}
Controller:
public function select_()
{
$use=D('classone','','mysql://root16656:@localhost/ybdbchfjhfjjds');
$db=$use->select();
echo '';print_r($db);echo '
';
}
public function select_()
{
$use=D('classone','qqqqqqqqqqqqqqqqqqqqqq','mysql://root16656:@localhost/ybdbchfjhfjjds');
$db=$use->select();
echo '';print_r($db);echo '
';
}
Controller这个库名ybdbchfjhfjjds,是我乱换的,按理说,应该出错,但是居然成功了!可以正常搜索到数据,所以说,库没有被覆盖,依然是 model 的库,
而下面的例子,前缀我写了个qqqqqqqqqqqqq,就搜不到数据了,
请问这个什么时候会被覆盖,什么时候不被覆盖?
因额为D函数只有两个参数 第一个参数是资源地址,第二个是模型层名称
你把mysql连接放在第三个空参数上了 当然不会生效
mysql链接参数是M函数里面的第三个参数。。
所以没有覆盖不覆盖一说