在不存在的行上使用Fetch

时间:2014-09-27 04:37:31

标签: php mysql mysqli fetch statements

我已经被困了一段时间了。 此代码在很大程度上起作用,但是存在一个小问题。当我请求我的表中不存在的用户名时,脚本在$stmt->fetch()处失败。当脚本无法返回实际的“无效用户名/密码”消息而基本上死亡时,它在网站上看起来很糟糕。

if($stmt = $DB_CON -> prepare("SELECT `ID`, `Username`, `Password`, `Email`, `Access`, `Banned` FROM `users` WHERE `Username`=?")) {
if(!($stmt -> bind_param('s', $USERNAME))){
    die($stmt->error); //These return empty...
}
if(!($stmt -> execute())){
    die($stmt->error);
}
if(!($stmt -> store_result())){
    die($stmt->error);
}
if(!($stmt -> bind_result($ID, $USERNAME, $DB_PASSWORD, $EMAIL, $ACCESS, $BANNED))){
    die($stmt->error);
}
if(!($stmt -> fetch())){
    die($stmt->error);
}

我缺少/需要改变什么?

1 个答案:

答案 0 :(得分:1)

感谢@Rasclatt,解决方案是从脚本中删除if(!( ... ))部分,因为当它无法返回信息时它会被删除。