2014-09-27 139 views
-3

我是PHP的初学者,我试图创建一个注册表,登录表单。有一个问题,我一直试图解决几天,我不知道我错了什么地方,我希望我能找到解决方案,并了解我做错了什么。接收mysqli参数警告?

我的错误:

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>"; 
} 

} 
?> 
+2

错误信息很清楚我会说什么错... – PeeHaa 2014-09-27 10:07:46

+2

你正在混合使用'mysql _ *()'和'mysqli _ *()'。他们不同,你不能混合他们。不要使用'mysql _ *()' - 它已被弃用。除此之外,这个消息告诉你你需要知道的一切。 – 2014-09-27 10:09:08

+0

我想为我的白痴问题表示歉意,并感谢大家指出我的缺陷。 – user3649195 2014-09-27 10:38:42

回答

0

如果您已经阅读上述意见,他们是正确的:

你需要传递的mysqli_query第一个参数的连接:

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

然后,不要混用API,你使用的是mysqli,然后使用相应的功能:

if(mysqli_num_rows($run) > 0) { 

最后,总是试图用准备statments,你反正使用的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的password hashing

0
$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"); 
相关问题