Мне интересно, почему мой оператор insert не работает. В базе данных нет записей, и никаких ошибок не обнаружено. Вот код
<?php if(isset($_POST['submit'])){ $username = trim($_POST['username']); $password = trim($_POST['password']); $conf_pass = trim($_POST['conf_password']); $email = trim($_POST['email']); require_once('./includes/Db/CheckPassword.php'); $check_pwd = new Db_CheckPassword($password); $passwordOK =$check_pwd->check(); $password_match = Db_CheckPassword::confirmPassword($password,$conf_pass); require_once('./includes/Db/CheckUsername.php'); $check_user = new Db_CheckUsername($username,$conn); $userOK = $check_user->check(); if($userOK && $passwordOK && $password_match){ $hashedpass = crypt($password); $sql = "INSERT INTO accounts ('username','password','email') VALUES('{$username}','{$hashedpass}','{$email}')"; $conn->query($sql); }else{ $pass_error = $check_pwd -> getErrors(); $user_error = $check_user->getErrors(); } } ?>
Здесь я вставляю записи в базу данных
if($userOK && $passwordOK && $password_match){ $hashedpass = crypt($password); $sql = "INSERT INTO accounts ('username','password','email') VALUES('{$username}','{$hashedpass}','{$email}')"; $conn->query($sql);
В mySQL символ кавычки идентификатора является обратным шагом, поэтому заменяйте одиночные кавычки, окружающие имена столбцов обратными выводами:
$sql = "INSERT INTO accounts (`username`,`password`,`email`) VALUES('{$username}','{$hashedpass}','{$email}')";