Php 注意:尝试访问第XX行中bool类型值的数组偏移量
试图访问第88行bool类型值的数组偏移量 试图访问第91行bool类型的值上的数组偏移量 我在下面的行上做了标记,我试图更改查询,以防万一,但它似乎不起作用。我查了一下,就是找不到解决办法。我还注意到所有这些答案都被否决了,但我是PHP的新手,所以我真的不知道该找什么。我想这很简单,但我只是找不到合适的地方。为什么会这样?我怎样才能修好它Php 注意:尝试访问第XX行中bool类型值的数组偏移量,php,mysqli,Php,Mysqli,试图访问第88行bool类型值的数组偏移量 试图访问第91行bool类型的值上的数组偏移量 我在下面的行上做了标记,我试图更改查询,以防万一,但它似乎不起作用。我查了一下,就是找不到解决办法。我还注意到所有这些答案都被否决了,但我是PHP的新手,所以我真的不知道该找什么。我想这很简单,但我只是找不到合适的地方。为什么会这样?我怎样才能修好它 $number = rand(pow(10, 11-1), pow(10, 11)-1); $stmt = mysqli_prepare($db, &quo
$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岁了,我正在学习如何填写登记表,所以我很乐意听取一些额外的建议 你把PDO和mysqli搞混了。Mysqli要复杂得多,
Mysqli\u stmt\u fetch
实际上并不返回任何值。如果使用get\u result
和OOP样式,可以使这一过程变得更简单。然后可以使用例如,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();
}
}
我想第81行的意思是第88行?噢,天哪,对不起!是的,81行是88行!我将尝试解决这个问题。您还应该从函数will
global$user代码>修复问题?函数mysqli_stmt_fetch返回一个布尔值,而不是行。