I am getting the following error on my browser for my php
Here’s the error: Fatal error: Uncaught TypeError: mysqli_num_rows(): Argument #1 ($result) must be of type mysqli_result, bool given in C:xampphtdocsprojectsignup.php:13 Stack trace: #0 C:xampphtdocsprojectsignup.php(13): mysqli_num_rows(false) #1 {main} thrown in C:xampphtdocsprojectsignup.php on line 13
line 13 of php code: $numExistRows = mysqli_num_rows($result);
My php code:
<?php
$showAlert = false;
$showError = false;
if($_SERVER["REQUEST_METHOD"] == "POST"){
include 'partials/_dbconnect.php';
$username = $_POST["Username"];
$password = $_POST["Password"];
$cpassword = $_POST["CPassword"];
//$exists=false;
//Check whether username exists or not
$existSql = "SELECT * FROM `users` WHERE username = '$username'";
$result = mysqli_query($conn, $existSql);
$numExistRows = mysqli_num_rows($result);
if($numExistRows> 0){
//$exists = true;
$showError = "Username already exists.";
}
else{
//$exists = false;
if(($password == $cpassword)){
$hash = password_hash($password, PASSWORD_DEFAULT);
$sql = "INSERT INTO `users` (`Username`, `Password`, `Date`) VALUES ('$username', '$hash', current_timestamp());";
$result = mysqli_query($conn, $sql);
if($result){
$showAlert = true;
}
}
else{
$showError = "Passwords don't match.";
}
}
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>SignUp</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">
</head>
<body>
<?php require 'partials/_nav.php' ?>
<?php
if($showAlert){
echo '<div class="alert alert-success alert-dismissible fade show" role="alert">
<strong>Success!</strong> Your account has been created.
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>';
}
if($showError){
echo '<div class="alert alert-danger alert-dismissible fade show" role="alert">
<strong>Sorry!</strong> '.$showError.'
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>';
}
?>
<div class="container">
<h1 class="text-center">Create an Account</h1>
<form action="signup.php" method="post">
<div class="form-group">
<label for="Username">Username</label>
<input type="text" maxlength="15" class="form-control" id="Username" name="Username" aria-describedby="emailHelp">
</div>
<div class="form-group">
<label for="Password">Password</label>
<input type="password" maxlength="15" class="form-control" id="Password" name="Password">
</div>
<div class="form-group">
<label for="CPassword">Confirm Password</label>
<input type="password" maxlength="15" class="form-control" id="CPassword" name="CPassword">
<small id="emailHelp" class="form-text text-muted">Make sure to type the same password.</small>
</div>
<button type="submit" class="btn btn-primary">SignUp</button>
</form>
</div>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-OERcA2EqjJCMA+/3y+gxIOqMEjwtxJY7qPCqsdltbNJuaOe923+mo//f6V8Qbsw3" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js" integrity="sha384-oBqDVmMz9ATKxIep9tiCxS/Z9fNfEXiDAYTujMAeBAsjFuCZSmKbSSUnQlmh/jp3" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-IDwe1+LCz02ROU9k972gdyvl+AESN10+x7tBKgc9I5HFtuNz0wWnPclzo6p9vxnk" crossorigin="anonymous"></script>
</body>
</html>
partials/_dbconnect.php code here:
<?php
$server = "localhost";
$name = "root";
$email = "";
$number = "";
$subject = "";
$txtMessage = "";
$database = "contact";
$conn = mysqli_connect($server, $name, $email, $number, $subject, $txtMessage, $database);
if (!$conn){
// echo "success";
//}
//else{
die("Error".mysqli_connect_error());
}
?>
I tried doing all the possible changes from my side but it didn’t help.



