尝试访问第 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 岁,刚开始学习如何填写注册表,所以我很乐意听取一些额外的建议!
1 回答

SMILET
TA贡献1796条经验 获得超4个赞
您将 PDO 与 mysqli 混淆了。Mysqli 要复杂得多,mysqli_stmt_fetch实际上不返回任何值。如果您使用get_resultOOP 风格,您可以使这更简单。然后,您可以使用,例如,fetch_assoc()从结果对象中获取一行。
$stmt = $db->prepare("SELECT * FROM accounts WHERE email= ? OR number= ? LIMIT 1");
$stmt->bind_param("ss", $email, $number);
$stmt->execute();
$user = $stmt->get_result()->fetch_assoc();
if($user) {
if ($user['email'] === $email) {
array_push($errors, "E-Mail already exists");
}
if ($user['number'] === $number) {
uniqueNum();
}
}
- 1 回答
- 0 关注
- 127 浏览
添加回答
举报
0/150
提交
取消