所以我从 MySQL 数据库中获取了数据,我想将其分配给基于第 n 行的变量。仅过滤底部三行,我想将第一行和最后一行的值分配给两个变量。
$sql3 = "SELECT * FROM login_attempts WHERE login_attempt_user_id=? AND login_attempt_result=? ORDER BY login_attempt_id DESC LIMIT 3;";
$stmt3 = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt3, $sql3)) {
echo 6;
exit();
} else {
mysqli_stmt_bind_param($stmt3, "ss", $login_attempt_user_id, $login_attempt_success);
mysqli_stmt_execute($stmt3);
$result2 = mysqli_stmt_get_result($stmt3);
if (mysqli_num_rows($result2) > 0) {
while ($row2 = mysqli_fetch_assoc($result2)) {
$test1 = $row2['login_attempt_time'][0];
$test2 = $row2['login_attempt_time'][2];
echo $test1.$test2;
exit();
}
} else {
//echo 4;
exit();
}
}
代码部分位于 while 循环内,我意识到我正在尝试的是数组。我想做类似的事情来实现我的目标。
我的代码没有将数据库条目分配给变量:$test = $row2['login_attempt_time']
分配所获取行的最后一个值,但是$test = $row2 ['login_attempt_time'][0]
仅返回值 1
。
有人可以帮忙解决这个问题吗?
最佳答案
使用 mysqli::fetch_all()
将所有(三)行提取到数组(二维)中。然后使用 reset()
获取第一个和最后一个元素(行)和 end()
.
改变
while ($row2 = mysqli_fetch_assoc($result2)) {
$test1 = $row2['login_attempt_time'][0];
$test2 = $row2['login_attempt_time'][2];
echo $test1.$test2;
exit();
}
至
$data = $result2->fetch_all(MYSQLI_ASSOC);
$variable1 = reset($data); // first row
$variable2 = end($data); // last row
关于php - 从 MySQL 数据库获取数据后,从第 n 行获取列数据并分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55901366/