系统采用Tp3.2的改造....集群为Mysql双工模式:
平时M()主要是操作写,MS操作读。。。今天在查询
$res =MS("user u")->join("{$per}user_info x ON x.uid = u.id")->where("u.id = $uid")->find();
var_dump($res);//false
始终为false.....而通过getLastSql输出的原生sql后:M()->query('sql 语句');返回有记录集。。。
猜测是mysql错误,于是:
$res =MS("user u")->join("{$per}user_info x ON x.uid = u.id")->where("u.id = $uid")->find(); var_dump($res);//false if(false === $res ){ echo MS("user u")->getDbError(); //输出Table 'user_info' doesn't exist }
CURD操作如果返回值为false,则表示数据库操作发生错误,这个时候就需要使用模型的getDbError方法来查看数据库返回的具体错误信息。
由此看来,问题就在集群数据表同步问题上(服务器集群是innodb,user_info是Myisam,问题可能就在这里).......统一改成M(读写方式)解决OK......
也希望大家每天都有一点点成果,每天都有一点点进步。