gpt4 book ai didi

验证表中是否已存在用户名和电子邮件时出现 PHP 错误

转载 作者:行者123 更新时间:2023-11-29 05:59:55 25 4
gpt4 key购买 nike

我试图验证用户名和电子邮件是否在我的用户表中。如果表中存在用户名或电子邮件,则验证工作正常,但不会存储,但提交后我在浏览器中只看到白屏,当我检查服务器日志时出现此错误。

PHP fatal error :未捕获错误:调用未定义的方法

mysqli::mysqli_num_rows() in /var/www/html/NutriCare/signup.php:86\nStack trace:\n#0 {main}\n thrown in /var/www/html/NutriCare/signup.php on line 86

我的数据库连接代码有问题吗?

这是我的 config.php

中的代码
<?php
$servername = "localhost";
$username = "root";
$password = "";
$db = "db";

$conn = new mysqli($servername, $username, $password, $db);

if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
?>

这是我在 signup.php 中验证用户名和电子邮件并在此处包含 config.php 文件的代码

<?php
require 'config.php';
$query = "SELECT username FROM users WHERE username='$username'";
$result = mysqli_query($conn, $query);
$query2 = "SELECT email FROM users WHERE email='$email'";
$result2 = mysqli_query($conn, $query2);

if ($conn->mysqli_num_rows($result) != 0) {
?>
<script>
sweetAlert("Error!", "Username already exist!", "error");
return false;
</script>
<?php
}

if ($conn->mysqli_num_rows($result2) != 0) {
?>
<script>
sweetAlert("Error!", "Email address already exist!", "error");
return false;
</script>
<?php
}
?>

但是当我删除此代码以验证电子邮件和用户名时,存储数据的处理没有错误。我包括了 $conn->close(); php文件末尾的代码我刚刚发布了我遇到错误时输入的代码。寻求帮助。提前致谢。

最佳答案

您检查行是否存在的两个查询都不正确。

if ($conn->mysqli_num_rows($result) != 0)
^^^^^^^

if ($conn->mysqli_num_rows($result2) != 0)
^^^^^^^

您不为结果集(来自查询)传递连接变量,您仅​​使用来自查询(成功)结果的变量。

将您的代码修改为:

if (mysqli_num_rows($result) != 0)
// ^^^^^^^ $result is all you need here

if (mysqli_num_rows($result2) != 0)
// ^^^^^^^^ $result2 is all you need here

注意:如果 != 逻辑运算符不起作用,请改用 > 0!= 0 可能会引发误报。

您还可以通过使用逻辑 ORAND 运算符在一个查询中执行此操作。但是,这可能超出了问题的范围。

请记住,您的代码对 SQL 注入(inject)是开放的。使用准备好的语句:

您还可以查看我的一个答案,其中包含一些准备好的语句方法:

还要检查 PHP 和 MySQL/查询端的错误。

引用资料:

引用PHP的mysqli_num_rows():


(免责声明)

我提供此答案是为了支持 PHP/MySQL 部分,但无法提供与您一起使用的 SweetAlert 脚本的支持。

关于验证表中是否已存在用户名和电子邮件时出现 PHP 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45873116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com