小弟封装了一个函数,有三张图,我想把fetch()到的数据做while循环,可是出现了死循环,$roomName是有值的求解
pdo数据

解决方案 »

  1.   

    你的 getListRoom 调用了 fetchData,并返回他的结果
    而 fetchData 每次都要执行 SQL 查询
    除非出错或没有找到结果,fetchData 总是会返回查询到的结果的第一条记录
    所以如果用 fetchData 的返回值作为循环终止的判断是不行的你在 fetchData 方法中应该用 fetchall 返回结果集数组
    然后用数组方法展示结果
      

  2.   

    谢谢,问题已经解决。但还有一点疑问,您的意思是fetch方法只能在循环时直接调用,可是又没有办法把fetch封装起来呢
      

  3.   

    可以把fetch封装起来,但是象你这样的不行!
    比如 fetchData($sql) 的本意是执行 sql 指令并返回结果
    由于结果可能是一条,也可能是多条。所以仅 fetch 就不能满足要求了,要用 fetchall
    实际工作中,查询结果只有一条的情况很多,比如取得记录数、检查用户是否注册等
    你可以再定义一个 fetchrow 方法,用 fetch 只返回一行