如何查看android回传给php-server(依托discuz的接口)参数后执行的sql语句 androidphp调试 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个问题刚好我也遇到了,解决办法如下找到:\source\class\discuz\discuz_error.php,并打开搜索:show_error($type, $errormsg, $phpmsg = '', $typemsg = '')在show_error函数下面,用file_put_contents函数将$errormsg打印到一个txt里面public static function show_error($type, $errormsg, $phpmsg = '', $typemsg = '') { global $_G;file_put_contents(DISCUZ_ROOT.'./appapi/log.txt',$errormsg.PHP_EOL,FILE_APPEND); ob_end_clean(); $gzip = getglobal('gzipcompress'); ob_start($gzip ? 'ob_gzhandler' : null);//后面的就不复制了...}缺点就是,discuz的所有sql错误都会记录在里面,当然一般discuz报的sql错误还是很少的 首先感谢jam00的回答,但我这个论坛是discuzX2的版本,我在 \source\class\class_error.php中进行了您说的相应修改:function show_error($type, $errormsg, $phpmsg = '') { global $_G; file_put_contents('http://192.168.1.101/bbs/android/log.txt',$errormsg.PHP_EOL,FILE_APPEND); //file_put_contents(DISCUZ_ROOT.'./android/log.txt',$errormsg.PHP_EOL,FILE_APPEND); ob_end_clean(); $gzip = getglobal('gzipcompress'); ob_start($gzip ? 'ob_gzhandler' : null);运行android发帖后,没有在android文件夹中发现log.txt这个文件。我想补充一点:我的post请求是android直接发给应用接口(该接口可以作为2级目录直接访问)的,然后通过sql处理mysql数据库,再返回给android进行页面呈现;没有和原有的discuz X2进行通信。所以在原有的discuz X项目中设置错误日志估计不能捕捉到这种独立接口的错误。因此才想到要在zend studio10.0中调试接口,获取sql语句。不管怎样,还是要谢谢jam00的热心解答! 若你想和discuz的数据完美结合,并减少开发时间的话,建议你还是用discuz已有的DB类和方法我不知道zend 在哪里处理了sql,不过执行sql错误,你可以用mysql_error()获取错误信息,用file_put_contents输出到一个txt里面 谢谢大家,尤其谢谢最先提供帮助的jam00,问题已经解决了。通过查看mysql_error,的报错,最后修改了forum_post的一个字段类型。 PHP数据导出和WEB service的问题 对于PHP新手的一点建议 求助怎么查询表中一共有多少条数据 高手指教:关于php+mysql的操作 php 文章内容如何实现? 用php如何发送邮件,不想用mail()函数 分页越来越多,如何能像DZ论坛隐藏起来。 怎样才能做到限制唯一用户登录? 用session判断登录的问题 怎么样在html的表格上添加两行空白行 类中调用自定义方法怎么会Fatal error: Call to undefined function 各位大神关于CURL模拟登录的问题
找到:\source\class\discuz\discuz_error.php,并打开
搜索:show_error($type, $errormsg, $phpmsg = '', $typemsg = '')
在show_error函数下面,用file_put_contents函数将$errormsg打印到一个txt里面
public static function show_error($type, $errormsg, $phpmsg = '', $typemsg = '') {
global $_G;
file_put_contents(DISCUZ_ROOT.'./appapi/log.txt',$errormsg.PHP_EOL,FILE_APPEND);
ob_end_clean();
$gzip = getglobal('gzipcompress');
ob_start($gzip ? 'ob_gzhandler' : null);
//后面的就不复制了...}
缺点就是,discuz的所有sql错误都会记录在里面,当然一般discuz报的sql错误还是很少的
function show_error($type, $errormsg, $phpmsg = '') {
global $_G;
file_put_contents('http://192.168.1.101/bbs/android/log.txt',$errormsg.PHP_EOL,FILE_APPEND);
//file_put_contents(DISCUZ_ROOT.'./android/log.txt',$errormsg.PHP_EOL,FILE_APPEND);
ob_end_clean();
$gzip = getglobal('gzipcompress');
ob_start($gzip ? 'ob_gzhandler' : null);运行android发帖后,没有在android文件夹中发现log.txt这个文件。
我想补充一点:我的post请求是android直接发给应用接口(该接口可以作为2级目录直接访问)的,然后通过sql处理mysql数据库,再返回给android进行页面呈现;没有和原有的discuz X2进行通信。所以在原有的discuz X项目中设置错误日志估计不能捕捉到这种独立接口的错误。因此才想到要在zend studio10.0中调试接口,获取sql语句。
不管怎样,还是要谢谢jam00的热心解答!
我不知道zend 在哪里处理了sql,不过执行sql错误,你可以用mysql_error()获取错误信息,用file_put_contents输出到一个txt里面