使用Update语句时,Mysqli_fetch_assoc()返回“布尔值”错误

时间:2019-05-21 00:46:03

标签: php mysql sql mysqli

我花了最后5个多小时来浏览与主题相关的stackoverflow问题,并尝试调试代码,但是没有一个问题能够解决我的问题。我觉得这很简单,我很陌生,因为我还是SQL新手。

我只是想用我的代码来执行此更新语句,但它没有更新所述行:

$sql1 = "UPDATE usern SET loggedin=? WHERE username=?";

我根本不知道我在这里缺少什么。有人可以帮我吗?这真让我发疯。我的完整代码:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
if (isset($_POST['login'])) {
	$conn->autocommit(FALSE);
	$useremail = $_POST['useremail'];
	$password = $_POST['password'];
	$loggedin = 1;
	if (empty($useremail) || empty($password)) {
		header("Location: index.php?error=emptyfields");
		exit();
	}
	else {
		$sql1 = "SELECT * FROM usern WHERE username=? OR email=?;";
		$stmt1 = mysqli_stmt_init($conn);
		if (!mysqli_stmt_prepare($stmt1, $sql1)) {
			printf($mysqli->error);
		}
		else {
			mysqli_stmt_bind_param($stmt1, "ss", $useremail, $useremail);
			mysqli_stmt_execute($stmt1) or die(mysqli_stmt_error($stmt1));
			$result1 = mysqli_stmt_get_result($stmt1) or die(mysqli_stmt_error($stmt1));
			if (!mysqli_stmt_get_result($stmt1)) {
				printf($mysqli->error);
			}
			if ($row = mysqli_fetch_assoc($result1)) {
				$pwdCheck = password_verify($password, $row['pass']);
				if ($pwdCheck == false) {
					header("Location: signin.php?error=wrongpwd1");
					exit();
				}
				else if ($pwdCheck == true) {
					session_start();
					$_SESSION['userid'] = $row['userid'];
					$sql2 = "UPDATE usern SET loggedin=? WHERE username=?";
					$stmt2 = mysqli_stmt_init($conn);
					if (!mysqli_stmt_prepare($stmt2, $sql2)) {
						header("Location: index.php?error=sqlerror2");
						exit();
					}
					mysqli_stmt_bind_param($stmt2, "is", $loggedin, $useremail);
					mysqli_stmt_execute($stmt2);
					header("Location: index.php?login=success");
					exit();
				}
				else {
					header("Location: signin.php?error=wrongpwd");
					exit();
				}
			}
			else {
				header("Location: signin.php?error=nouser");
				exit();
			}
		}
	}
}
else {
	header("Location: signin.php");
	exit();
}
$conn->close();

我忘了补充,这是我不断收到的完整错误消息:

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given on line 24.

0 个答案:

没有答案