我在登陆的时候将用户名存入了session
session_regenerate_id();
$member = mysql_fetch_assoc($result);
$_SESSION['SESS_MEMBER'] = $login;
之后在其它页面使用echo $_SESSION['SESS_MEMBER']可以在浏览器中显示这个用户名;但是使用这个$_SESSION['SESS_MEMBER']作为变量在数据库语言中进行查询就无法获得改变量,这是为什么呢??举个例子$user = trim($_SESSION['SESS_MEMBER']);
echo $user;  //这里在页面中可以显示出来
$rows = F1::getAll($user);//但是user数据没有成功作为getAll方法的变量
顺便给出getAll($user)的部分代码:
 public static function getAll( $user )
  {
    $db = DatabaseConnection::get()->handle();
    $res = $db->query( "SELECT * FROM rs where user = ?",array( $user ) );
    $rows = array();
……

解决方案 »

  1.   

    给出 $db->query 的代码
      

  2.   

    这是zendframework的方法吧。你看下getall方法有没有得到结果
      

  3.   

    是得不到值还是出错误提示?是不是没有用return返回值?
      

  4.   

    应该是有值的,我手动输入$user是可以得到结果的。比如:$user = 'admin';//将原来的trim($_SESSION['SESS_MEMBER'])替换掉
    echo $user;  
    $rows = F1::getAll($user)
      

  5.   


      
        public static function getAll( $user )
      {
        $db = DatabaseConnection::get()->handle();
        $res = $db->query( "SELECT * FROM rss_feeds where user = ?",array( $user ) );
        $rows = array();
        while( $res->fetchInto( $row, DB_FETCHMODE_ASSOC ) )
        {
          $rows []= $row;
        }
        return $rows;
      }这是查询语句,在用session作为变量之前一直都好用的
      

  6.   

    估计是sql语句错了
     "SELECT * FROM rss_feeds where user = ?",array( $user ) 
    看这里最终结果是什么,
    会不会是 where `user` = ? //user好像是关键字
    又或者是不是 where user = '?' 这里的引号问题???
      

  7.   

    $user=$_SESSION['SESS_MEMBER']."";
    再用$user试下。
      

  8.   


    我已经用了$user = trim($_SESSION['SESS_MEMBER']);应该不会缺少空字符现象吧。