저는 PDO PHP를 처음 접했습니다 (오늘 시작되었습니다). 나는 로그인 함수를 작성하려고 시도하고 있지만, 자격 증명이 맞음에도 불구하고 false를 리턴하고있다.PDO 스크립트가 작동하지 않는 행의 수를 얻으려고합니까?
제가 생각하기에 스크립트를 작동시키는 행의 양을 얻으려는 시도가 도움이 될까요?
function check_login($email, $username, $password)
{
$host = 'localhost';
$port = 3306;
$database = 'example';
$username = 'root';
$password = '';
$dsn = "mysql:host=$host;port=$port;dbname=$database";
$db = new PDO($dsn, $username, $password);
$password = md5($password);
$statement = $db->prepare("SELECT * FROM users WHERE email = ? or username = ? and password = ?");
$statement->execute(array($email, $username, $password));
while ($result = $statement->fetchObject()) {
$sql = "SELECT count(*) FROM users WHERE email = ? or username = ? and password = ?";
$result1 = $db->prepare($sql);
$result1->execute(array($email, $username, $password));
$number_of_rows = $result1->fetchColumn();
if ($number_of_rows == 1)
{
$_SESSION['login'] = true;
$_SESSION['uid'] = $result->uid;
return TRUE;
}
else
{
return FALSE;
}
}
}