警告:mysqli_query()需要至少2个参数,1给定... register.php第64行

时间:2016-12-08 20:31:06

标签: php mysql

我正在创建一个需要注册和登录页面的网页,但是我收到了以下错误:

警告:mysqli_query()需要至少2个参数,1在第64行的C:\ Abyss Web Server \ htdocs \ project \ register.php中给出

这是我的register.php

代码
<?php
ob_start();
session_start();
if( isset($_SESSION['user'])!="" ){
    header("Location: home.php");
}
include_once 'connect_db.php';

$error = false;

if ( isset($_POST['btn-signup']) ) {

    // clean user inputs to prevent sql injections
    $name = trim($_POST['name']);
    $name = strip_tags($name);
    $name = htmlspecialchars($name);

    $email = trim($_POST['email']);
    $email = strip_tags($email);
    $email = htmlspecialchars($email);

    $pass = trim($_POST['pass']);
    $pass = strip_tags($pass);
    $pass = htmlspecialchars($pass);

    // basic name validation
    if (empty($name)) {
        $error = true;
        $nameError = "Please enter your full name.";
    } else if (strlen($name) < 3) {
        $error = true;
        $nameError = "Name must have atleast 3 characters.";
    } else if (!preg_match("/^[a-zA-Z ]+$/",$name)) {
        $error = true;
        $nameError = "Name must contain alphabets and space.";
    }

    //basic email validation
    if ( !filter_var($email,FILTER_VALIDATE_EMAIL) ) {
        $error = true;
        $emailError = "Please enter valid email address.";
    } else {
        // check email exist or not
        $query = "SELECT userEmail FROM users WHERE userEmail='$email'";
        $result = mysqli_query($dbc, $query);
        $count = mysqli_num_rows($result);

        if($count!=0){
            $error = true;
            $emailError = "Provided Email is already in use.";
        }
    }
    // password validation
    if (empty($pass)){
        $error = true;
        $passError = "Please enter password.";
    } else if(strlen($pass) < 6) {
        $error = true;
        $passError = "Password must have atleast 6 characters.";
    }

    // password encrypt using SHA256();
    $password = hash('sha256', $pass);

    // if there's no error, continue to signup
    if( !$error ) {

        $query = "INSERT INTO users(userName,userEmail,userPass) VALUES('$name','$email','$password')";
        $res = mysqli_query($query);

        if ($res) {
            $errTyp = "success";
            $errMSG = "Successfully registered, you may login now";
            unset($name);
            unset($email);
            unset($pass);
        } else {
            $errTyp = "danger";
            $errMSG = "Something went wrong, try again later...";   
        }   

    }


}

&GT;

mysqli_num_rows()函数返回结果集中的行数。 因此,如果没有返回任何行或行不正确,则返回FALSE。 如果mysqli_query返回一个布尔值,则返回错误,只有在查询失败时才会发生。

我不太确定如何纠正这个错误,需要一些指导,谢谢。

1 个答案:

答案 0 :(得分:0)

您需要将连接句柄传递给第64行的mysqli_query()

$res = mysqli_query($dbc, $query);