数据库查询INSERT INTO失败

时间:2017-05-21 12:49:59

标签: php mysql

我的数据库查询出现问题,一切似乎都没问题,但查询仍然失败。我试图通过注册表格传递电子邮件和密码。

这是我的数据库查询代码:

public static function add_user($email, $password){
    global $database;

    $password = password_krypt($password);

    $sql = "INSERT INTO " . DB_PREFIX . "users (email, password)  
    VALUES ('" . $email . "', '". $password ."')";

    $result = $database->query($sql);

    if(!$result) {
        return pd("Error! DB query: " . $sql);
    }
    return "OK";
}

以下是我调用查询的文件的代码:

elseif ($btn === 'add') {
        $result = User::add_user($password, $email);
        if($result == 'OK') {
            echo 'User added to database!';
            redirect_to('/user/list.php');
        } else {
            echo $result;
        }

表单本身的代码:

<form method="post">
                <?php echo form_input('email', 'email', 'Sisestage email', 'Email',  empty($user_from_db['email']) ? $email : $user_from_db['email']); ?>
                <?php echo form_input('password', 'password', 'Enter your password', 'Password'); ?>
                <div class="form-group">
                    <button name="btn" value="add" type="submit" class="btn btn-primary">Create an account</button>
                    <button name="btn" value="edit" type="submit" class="btn btn-success">Edit</button>
                </div>
            </form>

最后错误,这是指向我的MySQL数据库连接文件,它具有不同的功能,错误指向confirm_query函数。

public function query($sql) {
    $this->last_query = $sql;
    $result = $this->connection->query($sql);
    $this->confirm_query($result);

    pd($result);

    return $result;
}

private function confirm_query($result) {
    if(!$result) {
        $r = "Database query failed: " . mysqli_connect_error();
        $r.= "<p>SQL: {$this->last_query}</p>";
        die($r);
    }
}

感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:-3)

停止在值内使用双引号...这可能会解决您的问题,并使您的查询尽可能简单