Мой код работает нормально (я не получаю никаких эров), но запрос INSERT INTO, похоже, не работает, поскольку данные никогда не помещаются в базу данных.Данные не вставляются в базу данных
Вот код:
EDIT: я слегка отредактировали код, чтобы он сделал бы логический смысл, но он по-прежнему не добавляет данные в таблицу. (Я даже снял если заявление полностью и просто оставил запрос в и оно не добавлять.)
<?php
//connect to user database
include("db_connect.php");
//set variables
$firstName = $_POST['firstName'];
$lastName = $_POST['lastName'];
$email = $_POST['email'];
$password = $_POST['password'];
$gender = $_POST['gender'];
$date = date('Y/m/d H:i:s a');
//check if email exists
$db_query = "SELECT * FROM users WHERE email LIKE '$email'";
$db_result = mysql_query($db_query);
if(!$db_result)
{
$query = "INSERT INTO users (lastName, firstName, email, password, gender, signup) VALUES ('$lastName', '$firstName', '$email', '$password', '$gender', '$date')";
mysql_query($query);
echo 'You have been successfully registered. Please <a href="login.php">Click Here</a> to log in.';
}
else {
echo 'That email is already in use. <a href="login.php">Click Here</a> to return to the sign up page.';
}
?>
До тех пор, пока '$ email_taken' становится ресурсом результата с помощью успешного запроса, он всегда будет оценивать true. Вместо этого вам нужно проверить наличие строк в наборе результатов. – Crackertastic
Вы должны использовать команды mysqli вместо mysql в PHP a, так как функции mysql_ * устарели по многим причинам и в конечном итоге будут удалены. – JAL
** Danger **: вы используете [** устаревший ** API баз данных] (http://stackoverflow.com/q/12859942/19068) и должны использовать [современную замену] (http: // php. нетто/ручной/EN/mysqlinfo.api.choosing.php). Вы также уязвимы для [SQL-инъекций] (http://bobby-tables.com/) **, что современный API упростит [защиту] (http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php). – Quentin