2014-09-27 140 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"); 
相關問題