【发布时间】:2020-06-18 17:24:01
【问题描述】:
第 88 行尝试访问 bool 类型值的数组偏移量
尝试访问第 91 行中 bool 类型值的数组偏移量
我标记了下面的行,我试图更改查询以防万一,但它似乎不起作用。我查了一下,只是找不到解决方案。我还注意到所有这些答案都被否决了,但我是 PHP 的新手,所以我真的不知道要寻找什么。我想这很简单,但我只是没有找对地方。为什么会这样?我该如何解决?
$number = rand(pow(10, 11-1), pow(10, 11)-1);
$stmt = mysqli_prepare($db, "SELECT * FROM accounts WHERE email= ? OR number= ? LIMIT 1");
mysqli_stmt_bind_param($stmt, "ss", $email, $number);
mysqli_stmt_execute($stmt);
$user = mysqli_stmt_fetch($stmt);
function uniqueNum() {
global $number;
$number = rand(pow(10, 11-1), pow(10, 11)-1);
if ($user['number'] === $number) {
uniqueNum();
}
}
if ($user) {
if ($user['email'] === $email) { // Line 88
array_push($errors, "E-Mail already exists");
}
if ($user['number'] === $number) { // Line 91
uniqueNum();
}
}
感谢任何形式的帮助!我今年 15 岁,正在学习如何填写注册表单,所以我很乐意听取一些额外的建议!
【问题讨论】:
-
我假设
// Line 81的意思是// Line 88? -
天哪,对不起!是的,81 号线是 88 号线!我会尽力解决这个问题。
-
您还应该在函数内收到
$user超出范围的错误 -
global $user;会解决这个问题吗? -
函数 mysqli_stmt_fetch 返回一个布尔值,而不是行。