我是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");