У меня есть простая форма html и php-файл для выполнения вставки базы данных. Проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю кнопку отправки, моя таблица базы данных получает 3 копии одной и той же заявки, и мне она нужна только. Ниже приведен код.Моя форма представляет несколько записей базы данных, и я не хочу ее
HTML:
<!DOCTYPE html>
<html>
<form action="demo.php" method="post">
<p>
Input 1: <input type="text" name="input1" />
<input type="submit" value="Submit" />
</p>
</form>
</html>
PHP:
<?php
define('DB_NAME', 'phpmyadminName');
define('DB_USER', 'phpmyadminUser');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost');
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if (!$link){
die('Could not connect: ' . mysql_error());
}
$db_selected = mysql_select_db(DB_NAME, $link);
if (!$db_selected){
die('Can\'t use ' . DB_NAME . ': ' . mysql_error());
}
$value = $_POST['input1'];
$sql = "INSERT INTO demo (input1) VALUES ('$values')";
if (!mysql_query($sql)){
die('Error: ' . mysql_error());
}
mysql_close();
?>
DB_NAME, DB_USER и DB_PASSWORD все были изменены по понятным причинам, но код работает.
Он просто отправляет слишком много копий данных формы в таблицу базы данных. Когда я учился в школе, у меня была эта проблема, но, похоже, проблема была на конце сервера, а не на нашем коде. Сервер, используемый здесь, принадлежит мне, и у меня есть полный контроль над ним. Если на сервере возникает ошибка, мне нужна помощь в исправлении (поскольку я это делаю, чтобы узнать, как управлять этими инструментами, я не знаю гораздо больше, чем администрирование базового уровня).
Взгляд в ctype. Пробуем код как есть, и я получаю ошибку «неожиданных значений». Я опубликую обновление, когда я сделаю хеш-версию. Благодарим вас за ценное понимание. – Kenneth
Хорошо, отправил это на неправильный ответ секунду назад, но я выяснил свою ошибку. Оказывается, строка, которую я набрал, вызвала ошибку. Я набрал фразу «тест 1», и пространство бросило ошибку на меня, как кувшин воды на костре. этот код работает по назначению. – Kenneth
Я вижу, приведенная выше информация была общей рекомендацией, так как я не знал, какие типы данных вы обрабатываете. Похоже, что просто проверить, пуст ли он, тогда использование подготовленного оператора должно быть прекрасным, так как все входные данные будут экранированы. В этом случае 'mysql_real_escape_string' - это то, что вы хотели бы использовать перед вставкой в базу данных. Я уточню свой ответ. – EternalHour