Я делаю этот скрипт для сохранения данных из формы в удаленную базу данных, но по некоторому Wierd причины это экономии как пустое:Сохранение пустой строки в БД
сценария:
#FORM SECTION
$choice;
$email;
$checkbox;
$success = FALSE;
#SQL SECTION
$host = '*******';
$user = '*******';
$pass = '*******';
$db = '********';
$connection = new mysqli($host, $user, $pass, $db);
$sql = "INSERT INTO clients_and_choices (email,choice) VALUES ('$email','$choice')";
$query = mysqli_query($connection, $sql);
if ($_SERVER["REQUEST_METHOD"] == "POST"){
$email = $_POST['email'];
$choice = $_POST['choice'];
$email = $connection->real_escape_string($email);
$choice = $connection->real_escape_string($choice);
if (mysqli_connect_errno())
trigger_error(mysqli_connect_errno());
if (!filter_var($email, FILTER_VALIDATE_EMAIL) OR empty($choice)){
http_response_code(400);
echo "Houston we got a problem!";
exit;
}
if ($query){
$success = TRUE;
http_response_code(200);
echo 'Thank you :D';
}
else{
http_response_code(500);
echo "Bummer! It seems something went wrong :< If you would be so kind to try again :D";
}
mysqli_close($connection);
if (isset($_GET["ajax"]))
echo $success ? "success" : "error";
}
Когда я первый написал, используя mysql
вместо mysqli
он работал ... может быть, я делаю что-то неправильно, но я не могу сказать, и я не знаю, как для отладки в PHP.
Этот '$ sql =" INSERT INTO clients_and_choices (адрес электронной почты, выбор) VALUES ('$ email', '$ choice') ";' принадлежит *** после ***, вы подтвердили входные данные и убедились, что они не пусто. Изменить: и убедитесь, что ваша форма использует метод post и что входы имеют соответствующие им атрибуты. Возможно, вы используете HTML-форму и PHP/SQL внутри одного и того же файла, что и приведет к этому. –
Просто, чтобы проверить: что @ Fred-ii- сказал * и *, вы можете проверить, установлены ли обе переменные. * Пояс и подтяжки Ralph! * –
Итак, просто инициализируя переменную, я выполняю запрос? #mindblown – Onilol