使用Mysqli的两个查询

时间:2014-03-19 06:46:29

标签: php mysqli

问题:

尝试针对数据库运行两个MySQLi查询,但结果始终是失败消息。

代码(PHP):

// Checks whether submit button has been pressed
if (isset($_POST['submit']))
{
    // Gets values from form fields
    $email      = mysql_real_escape_string(stripslashes($_POST['email']));
    $password   = mysql_real_escape_string(stripslashes($_POST['password']));

    // Selects e-mail in database
    $query  = "SELECT * FROM userlogin WHERE email = '{$email}'";
    $result = mysqli_query($link, $query) or die('Error  [' . mysqli_error($link) . ']');

    // Checks whether e-mail exist
    if (mysqli_num_rows($result) != 0)
    {
            // Register new user
            $query = "INSERT INTO 
                            userlogin 
                        (username, password, email, regdate)
                            VALUES
                        ('James','{$password}', '{$email}', NOW())
            ";

            // Submit query to database
            $result = mysqli_query($link, $query) or die('Error  [' . mysqli_error($link) . ']');

            // Return success message
            header('Location: index.php?notification=success');
    }
    else
    {
        // Return failure message
        header('Location: index.php?notification=fail');
    }
}

我错过了什么?任何建议都表示赞赏。

2 个答案:

答案 0 :(得分:2)

不应该这个

mysqli_num_rows($result) != 0

mysqli_num_rows($result) == 0

答案 1 :(得分:0)

一个问题是

$email      = mysql_real_escape_string(stripslashes($_POST['email']));
$password   = mysql_real_escape_string(stripslashes($_POST['password']));

应该是

$email      = mysqli_real_escape_string($link,stripslashes($_POST['email']));
$password   = mysqli_real_escape_string($link,stripslashes($_POST['password']));