我正在关注MVC的教程,我陷入了无法进一步发展的境地。
问题在于,当我执行SQL语句时,我试图获取值并只打印它/ echo它。
我有一个功能,我正在实现它。这是代码:
注意:我使用filter_input()方法获取$ _POST(['登录'])和$ _POST(['密码'])。出于某种原因,我无法直接使用$ _POST()方法,因为它会向我发出警告,表示不能直接访问超全球$ _POST。
我不确定这里究竟是什么问题。我为此得到零,我实际上在数据库中有一个条目。
public function run(){
$login = filter_input(INPUT_POST, 'login');
$password = filter_input(INPUT_POST, 'password');
$sth = $this->db->prepare("SELECT id FROM users WHERE
login = :login AND password = MD5(:password)");
$sth->execute(array(
':login' => $login,
':password' => $password
));
$data = $sth->fetchAll();
print_r($data);
/*$count = $sth->rowCount();
print_r($count);
if($count>0){
echo 'Have a record.';
}else{
echo 'No Record found.';
}*/
}
如果有人可以帮我找到问题,我将非常感激。
答案 0 :(得分:2)
直接来自manual,
PDOStatement :: rowCount()返回受相应PDOStatement对象执行的最后一个DELETE,INSERT或UPDATE语句影响的行数。
更新后:请尝试以下,
$sth = $this->db->prepare("SELECT id FROM users WHERE
login = :login AND password = :password");
$sth->execute(array(
':login' => $login,
':password' => md5($password)
));
$data = $sth->fetchAll();