教你检查并输出Thinkphp sql查询语句 查看具体错在哪里
首选要找到Thinkphp\Core\Library\Think\Db\Driver.class.php 用专业工具打开
找到 query函数,在if($fetchSql){前面加上一行 if(isset($GLOBALS["echosql"])){ echo $this->queryStr;}改成如下 public function query($str,$fetchSql=false) { $this->initConnect(false); if ( !$this->_linkID ) return false; $this->queryStr = $str; if(!empty($this->bind)){ $that = $this; $this->queryStr = strtr($this->queryStr,array_map(function($val) use($that){ return '\''.$that->escapeString($val).'\''; },$this->bind)); }if(isset($GLOBALS["echosql"])){unset($GLOBALS["echosql"]); echo $this->queryStr;} if($fetchSql){ return $this->queryStr; } 。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。。。。。。 如想要输出sql就在控制器 程序里写上$GLOBALS["echosql"]=1;//就是多加这行$user=M("user");$result = $user->where($where)->find(); exit();你就可以看到他输出的完整提示的,而不是thinkphp不完整的错误提示