2015-09-18 4 views
3
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; 
} 

Так у меня есть эти 2 функции, и я хочу, чтобы иметь возможность echo $this->session внутри LoggedIn(), хотя это кажется невозможным прямо сейчас, как переменная находится внутри, если заявление. Он работает, если я вывешу переменную из инструкции. Любые предложения или идеи о том, как я могу это сделать правильно?эхо переменной с, если заявление другой функции

+1

Не так ли, потому что, когда '$ stmp-> rowCount()' отличается от 1, то '$ username' равно null? –

+0

вызовите функцию и верните значение –

ответ

1

Это говорит вам, что $ stmp-> сверка() не равна 1. Выполните следующие действия:

  1. Выполнить запрос вручную в базе данных (например, с помощью PhpMyAdmin). Вы видите строки? Если нет, это ваша проблема. Строки не соответствуют вашему запросу.
  2. Если вы хотите получить строки назад, то перед выражением if выполните var_dump $ stmp-> rowCount(). Если он возвращает 0, вы хотите проверить значения $ username и $ password на var_dumping. Если он возвращает больше 1, это означает, что в вашей таблице есть повторяющиеся строки. Если он возвращает что-то еще как null, это может быть неправильная функция. В этом случае проверьте документацию для пакета базы данных, который вы используете.
Смежные вопросы