5.0.0 - 普通 - 未处理
发现一个缺陷(也许不是):$m1 = M('table1');
$m2 = M('table1');
$m1->where(array('id'=>1));
$m2->where(array('id'=>2));
$result1 = $m1->select();
var_dump($result1);
-----------------
结果:
array(1) {
[0]=>
array(1) {
["id"]=> string(1) "2"
}
}
用户期望是: id=>'1'
------------------------------------------
tp源码:
$guid = (is_array($connection) ? implode('', $connection) : $connection) . $tablePrefix . $name . '_' . $class;
if (!isset($_model[$guid])) {
$_model[$guid] = new $class($name, $tablePrefix, $connection);
}
return $_model[$guid];
--------------------------------------------
如果业务代码上同一上下文中,M方法命中同一个实例,但希望分别获取结果的时候,会出问题。
上面的示例中where是最简单一种情况,如果用户想分别join不同的表的时候,join的表会顺延到二次查询上,很难发现问题。
