我正在尝试将东西插入数据库,尽管我设法完成了它,但我只是想知道为什么以下内容不起作用,但是我是否将变量分配给$ row [] ;?首先,它将起作用:例如
$current_date = strip_tags(date("Y-m-d H:i:s"));
$date = strip_tags(date('Y-m-d H:i:s', strtotime("+5 minutes")));
$login_attempts += 1;
$sql2 = "
UPDATE users
SET login_attempts = ?, login_failed_delay = ?
WHERE user_uid = ?
";
if (!mysqli_stmt_prepare($stmt, $sql2)) {
echo 'SQL statement failed';
} else {
//Bind parameters to the placeholder
mysqli_stmt_bind_param($stmt, "iss", $login_attempts, $date, $uid);
//Run parameters inside database
mysqli_stmt_execute($stmt);
}
但是,如果我这样做,它将起作用:
$current_date = strip_tags(date("Y-m-d H:i:s"));
$date = strip_tags(date('Y-m-d H:i:s', strtotime("+5 minutes")));
$login_attempts = $row['login_attempts'];
$login_attempts += 1;
$sql2 = "
UPDATE users
SET login_attempts = ?, login_failed_delay = ?
WHERE user_uid = ?
";
if (!mysqli_stmt_prepare($stmt, $sql2)) {
echo 'SQL statement failed';
} else {
//Bind parameters to the placeholder
mysqli_stmt_bind_param($stmt, "iss", $login_attempts, $date, $uid);
//Run parameters inside database
mysqli_stmt_execute($stmt);
}
答案 0 :(得分:0)
在第一个示例中,$login_attempts
没有使用任何有意义的数字,所以当您这样做时
$login_attempts += 1;
对该用户的先前值一无所知。而-当您这样做...
$login_attempts = $row['login_attempts'];
$login_attempts += 1;
您要在login_attempts的先前计数中加1(我认为是)。
或者,您可以仅在SQL语句中添加1 ...
$sql2 = "UPDATE users
SET login_attempts = login_attempts+1,
login_failed_delay = ?
WHERE user_uid = ?";