クエリがデータベースの値を返さない理由を理解するために 5 時間以上試みました。別のクエリを使用してテストし、ユーザー ID と等しい _iD を返しましたが、接続できましたが、これで大変な時期..
注意: 未定義の変数: 5 行目の _iPassword
注意: 未定義の変数: 8 行目の _iUsername
public function User_Login($_iUsername,$_iPassword) {
$md5_password = md5($_iPassword);
$sth = $db->prepare("SELECT _iD FROM users WHERE _iUsername = :username AND _iPassword = :password AND _iStatus = 1");
$sth->bindValue(":username", $_iUsername, PDO::PARAM_STR);
$sth->bindValue(":password", $md5_password, PDO::PARAM_STR);
$sth->execute();
if ($sth->rowCount() == 1) {
$row = $sth->fetch(PDO::FETCH_ASSOC);
return $row['_iD'];
} else {
return false;
}
}
これは私が変換しているMySQLのクエリですが、何が間違っているのかわかりません..
public function User_Login($username,$password) {
$username=mysql_real_escape_string($username);
$password=mysql_real_escape_string($password);
$md5_password=md5($password);
$query=mysql_query("SELECT uid FROM users WHERE username='$username' and password='$md5_password' AND status='1'");
if( mysql_num_rows( $query ) == 1 ) {
$row = mysql_fetch_array( $query );
return $row['uid'];
} else {
return false;
}
}