来自其他函数

时间:2015-09-18 04:13:14

标签: php

   public function Validate($username,$password) {

   $stmp = $this->db->prepare("SELECT * FROM users WHERE username=? and password = ?");
   $stmp->bindParam(1, $username);
   $stmp->bindParam(2, $password);
   $stmp->execute();

   $this->session = $username;

   if($stmp->rowCount() == 1) {

     $this->session = $username; 

   }

}

public function LoggedIn() {
   echo $this->session;
}

所以我有这两个函数,我想能够在echo $this->sessionLoggedIn(),虽然现在似乎不可能,因为变量在if语句中。如果我把变量放在语句之外,它就可以工作。关于如何正确地做到这一点的任何建议或想法?

1 个答案:

答案 0 :(得分:1)

这告诉你$ stmp-> rowCount()不等于1.执行以下操作:

  1. 在数据库中手动运行查询(例如:使用phpMyAdmin)。你看到行吗?如果没有,那就是你的问题。没有行符合您的查询。
  2. 如果你确实得到了行,那么在你的if语句之前做一个$ stmp-> rowCount()的var_dump。如果返回0,则需要通过var_dumping检查$ username和$ password的值。如果返回大于1,则表示表中存在重复的行。如果它返回其他类似null的东西,则可能是使用错误的函数。在这种情况下,请检查您正在使用的数据库包的文档。