我的数据库查询出现问题,一切似乎都没问题,但查询仍然失败。我试图通过注册表格传递电子邮件和密码。
这是我的数据库查询代码:
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);
}
}
感谢任何帮助。谢谢!
答案 0 :(得分:-3)
停止在值内使用双引号...这可能会解决您的问题,并使您的查询尽可能简单