正在接收mysqli参数警告


Receiving mysqli parameter warnings?

我是PHP的初学者,正在尝试创建一个注册、登录表单。有一个问题我已经尝试解决了几天,但我不确定哪里出了问题,我希望我能找到解决方案,并了解我做错了什么。

我的错误:

Warning: mysqli_query() expects at least 2 parameters, 1 given in /registration.php on line 64
Warning: mysql_num_rows() expects parameter 1 to be resource, null given in /registration.php on line 66
Warning: mysqli_query() expects at least 2 parameters, 1 given in /registration.php on line 73

PHP:

<?php
$connection = mysqli_connect("mysql.hostname.com","user998988","9858588");
mysqli_select_db($connection,"user9898989");
   if(isset($_POST['signup'])) {
    $user_name = $_POST['name'];
    $user_pass = $_POST['pass'];
    $user_email = $_POST['email'];
   if($user_name==''){
   echo "<script>alert('Please enter your name!')</script>";
   exit();
   }
   if($user_pass==''){
   echo "<script>alert('Please enter your password!')</script>";
   exit();
   }
   if($user_email==''){
   echo "<script>alert('Please enter your email!')</script>";
   exit();
   }
   $check_email = "select * from users where user_email='$user_email'";
   $run = mysqli_query($check_email);
   if(mysql_num_rows($run)>0) {
   echo "<script>alert('Email $user_email already exists')</script>";
   exit();
   }
   $querying = "insert into users (user_name,user_pass,user_email) values ('$user_name','$user_pass','$user_email')";
   if(mysqli_query($querying)) {
   echo  "<script>alert('Registration successful!')</script>";
}
}
?>

如果你已经阅读了上面的评论,它们是正确的:

您需要在mysqli_query:的第一个参数上传递连接

$run = mysqli_query($connection, $check_email);

然后,不要混淆API,你使用的是mysqli,然后使用适当的函数:

if(mysqli_num_rows($run) > 0) {

最后,总是尝试使用准备好的统计数据,不管怎样,你都在使用mysqli:

$stmt = $connection->prepare('INSERT INTO users (user_name,user_pass,user_email) VALUES(?, ?, ?) ');
$stmt->bind_param('sss', $user_name, $user_pass, $user_email);
$stmt->execute();

我建议不要在数据库中插入纯裸密码。使用PHP的密码哈希。

$check_email = "select * from users where user_email='$user_email'";
   $run = mysqli_query($check_email);
   if(mysql_num_rows($run)>0) 

将上面的行更改为此

$check_email = "select * from users where user_email='$user_email'";
   $run = mysqli_query($connection,$check_email);
   if(mysql_num_rows($run)>0) 

并删除此行

mysqli_select_db($connection,"user9898989");