thinkphp 如何调试,打印错误信息sql 等
在配置⽂件中增加⼀句代码’SHOW_PAGE_TRACE’ =>true,
类似这样
如下图
也可以打印最后⼀句sql语句,然后去数据库phpmyadmin中运⾏sql语句.查看错误原因
有时,经常打印不出正确的结果.还是会返回类似下⾯的⽆⽤语句
解决办法
如果是保存更新数据会⽤到save()则可以直接到系统⽂件中打印
到ThinkPHP\Library\Think\Db.class.php
控制器中,save()会⽤到这个原始update() 函数,或add()会涉及这个函数insert()等
同理如果是查询则到select()函数,
return array (
/* 数据缓存设置 */
'SHOW_PAGE_TRACE' =>true ,//开启右下⾓的调试按钮
'DATA_CACHE_PREFIX' =>
'onethink_', // 缓存前缀
'DATA_CACHE_TYPE' => 'File', // 数据缓存类型
'URL_MODEL' => 3, //URL 模式
"LOG_RECORD" => true , // 开启⽇志记录
"LOG_LEVEL" =>"EMERG,ALERT,CRIT,ERR", // 只记录EMERG ALERT CRIT ERR 错误
/* ⽂件上传相关配置 */
)
echo D (
'content')->getLastSql ();exit ;//修改为⾃⼰的表名
show columns from
php如何运行代码function update ()
⾥⾯的
$sql = 'UPDATE '.........
print_r ($sql );exit ;//这⾥加⼀句打印即可,然后复制sql 去数据库直接运⾏sql 语句,看下错误是什么
return $this ->execute ($sql ,$this ->parseBind (!empty ($options ['bind'])?$options ['bind']:array ()));
/**
* 查记录
* @access public
* @param array $options 表达式
* @return mixed
*/
public function select ($options =array ()) {
$this ->model = $options ['model'];
$sql = $this ->buildSelectSql ($options );
$cache ='1.txt';//增加这两句
file_put_contents ($cache ,$sql ."\n\r",FILE_APPEND );//⾃动保存到缓存⽬录中,然后,去查看所有打印的东西,不需要时,注意注释掉
$result = $this ->query ($sql ,$this ->parseBind (!empty ($options ['bind'])?$options ['bind']:array ())); return $result ;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论