tp很神奇的一个情况,sql运行没问题,但是代码中查询不到结果

qq_19532641 2014-08-14 05:05:49

$model = M('token_open');
$token_open=$model->field('queryname')->where(array('token'=>session('token')))->select();

print_r($token_open);
echo('此功能维护中...');
exit;
if(!strpos($token_open['queryname'],'adma')){$this->error('您还开启该模块的使用权,请到功能模块中添加',U('Function/index',array('token'=>session('token'),'id'=>session('wxid'))));}
//相册列表
$data=M('Photo');
$count = $data->where(array('token'=>$_SESSION['token']))->count();
$Page = new Page($count,12);
$show = $Page->show();
$list = $data->where(array('token'=>$_SESSION['token']))->limit($Page->firstRow.','.$Page->listRows)->select();
$this->assign('page',$show);
$this->assign('photo',$list);
$this->display();

在echo前边,用语句echo($model->_sql());把sql语句打印出来,复制到phpmyadmin中执行,正常显示查询结果,但是在程序中就是得不到任何结果。换了其他的表和字段后,打印后,也会得到查询结果,queryname是text类型的,难道这样也不行吗
...全文
2131 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Seven小七 2015-06-15
  • 打赏
  • 举报
回复
6楼正解。 先考虑变量是否被复用。
人鱼传说 2015-05-19
  • 打赏
  • 举报
回复
不可能print_r不出值,问题肯定在上一行就有问题了,可能连到其他库了;另外,你怀疑是不是text的问题,你field一个 varchar类型的字段出来看看,看是否有值
CodingLineWT 2015-05-14
  • 打赏
  • 举报
回复
把Runtime文件夹删了 顺便打印下$model 不是缓存就是连错库了
zktz1 2015-05-12
  • 打赏
  • 举报
回复
清缓存试试,另外你打印一下$model看看是不是连错库了
Jaeson_Chen 2015-01-17
  • 打赏
  • 举报
回复
Mark 一下,如果类型换成varchar 类型 是否可以呢?或者还有缓存的问题。
mengqiao0422 2015-01-17
  • 打赏
  • 举报
回复
queryname,这个字段是不是新增的?删除缓存文件中data里的文件。这里面会缓存数据表结构
深圳phper 2014-08-15
  • 打赏
  • 举报
回复
执行查询前先unset( $token_open);
qq_19532641 2014-08-15
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
我不是很清楚你的流程 通常 token 是前一个程序发出,后一个程序验证的 那么什么时候被保存到数据库中的呢?
这个就是一个完整的action,目的是通过session判断其是否有权限访问这个页面,queryname的值是后台添加的
xuzuning 2014-08-14
  • 打赏
  • 举报
回复
我不是很清楚你的流程 通常 token 是前一个程序发出,后一个程序验证的 那么什么时候被保存到数据库中的呢?
qq_19532641 2014-08-14
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
可能 $_SESSION['token'] 变了呢?
第2行执行完 直接打印的sql语句,应该不会变把,而且刚才又在第2行的前后各打印了一次$_SESSION['token'] 前后两个的session结果是一样的
xuzuning 2014-08-14
  • 打赏
  • 举报
回复
可能 $_SESSION['token'] 变了呢?
qq_19532641 2014-08-14
  • 打赏
  • 举报
回复
SELECT `queryname` FROM `wy_token_open` WHERE ( `token` = 'xcffdn1404787813' )
这个是打印出来的sql语句,这个是在navicat中的运行结果

4,251

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧