В настоящее время я делаю школьный проект, который включает создание веб-сайта для пользователей, чтобы вводить события. Но в настоящее время я сталкиваюсь с этой проблемой:
Невозможно вставить заголовок события
Код ошибки:
Неизвестный столбец ‘event_title’ в ‘списке полей’]
это моя кодировка:
<?php
$e_title = $_POST['title'];
$e_venue = $_POST['venue'];
$e_date1 = $_POST['date1'];
$e_date2 = $_POST['date2'];
$e_time1 = $_POST['time1'];
$e_time2 = $_POST['time2'];
$e_remarks = $_POST['remarks'];
$e_blurbs = $_POST['blurbs'];
$e_organiser = $_POST['organiser'];
if ($e_title=='') {
exit ("Event Field is empty. Click to <a href=addevent.php> Go Back</a>");
}
$conn = @mysql_connect ('localhost', 'root','');
if (!$conn) die ("<p>No MYSQL Connection</p>");
$conn = mysql_select_db('events');
if (!$conn) die("<p>Cannot select database</p>");
$sql = "INSERT into `event` (event_title, event_venue, event_date1, event_date2, event_time1,
event_time2, event_remarks, event_blurbs, event_organiser) VALUES ( '$e_title', '$e_venue', '$e_date1', '$e_date2', '$e_time1','$e_time2', '$e_remarks', '$e_blurbs', '$e_organiser')";
$result = @mysql_query ($sql);
if(!$result){
exit( "<p>Cannot insert event title</p> Error Code: <p>". mysql_error()."</p>");
}
else {
echo "event saved successfully!";
}
?>
это моя кодировка в базе данных phpmyadmin «события» … я в настоящее время использую XAMPP
CREATE TABLE EVENT(
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
title TEXT,
venue TEXT,
date1 DATE NOT NULL
date2 DATE NOT NULL
time1 TIME
time2 TIME
remarks TEXT,
blurbs TEXT,
organiser TEXT
)
Столбцы в вашей таблице не начинаются с event_
в то время как столбцы в вашем INSERT
список делаю Удалить event_
из всех столбцов, как это
$sql = "INSERT into `event` (title, venue, date1, date2, time1,
time2, remarks, blurbs, organiser) VALUES ( '$e_title', '$e_venue', '$e_date1', '$e_date2', '$e_time1','$e_time2', '$e_remarks', '$e_blurbs', '$e_organiser')";
Вы должны рассмотреть возможность использования mysql_*
функции, они будут удалены в будущих версиях. Также очистите данные, переданные из формы, перед использованием в любой операции базы данных, чтобы избегать SQL-инъекций
Удалите event_ из имен столбцов, поскольку столбцы таблицы базы данных не соответствуют имени столбца, которое вы указали в запросе.
Так что используйте:
$ sql = «ВСТАВИТЬ в event
(название, место проведения, дата1, дата2, время1,
time2, замечания, размытия, органайзер) VALUES (‘$ e_title’, ‘$ e_venue’, ‘$ e_date1’, ‘$ e_date2’, ‘$ e_time1’, ‘$ e_time2’, ‘$ e_remarks’, ‘$ e_blurbs’, ‘$ e_organiser’) «;
Он должен работать
Запрос БД должен быть изменен как этот
CREATE TABLE EVENT(
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
event_title TEXT,
event_venue TEXT,
event_date1 DATE NOT NULL
event_date2 DATE NOT NULL
event_time1 TIME
event_time2 TIME
event_remarks TEXT,
event_blurbs TEXT,
event_organiser TEXT
);
Или вы можете попробовать изменить скрипт php как
$sql = "INSERT into `event` (title, venue, date1, date2, time1,
time2, remarks, blurbs, organiser) VALUES ( '$e_title', '$e_venue', '$e_date1', '$e_date2', '$e_time1','$e_time2', '$e_remarks', '$e_blurbs', '$e_organiser')";
Не делайте оба изменения .. Ошибка в том, что имя атрибутов в таблице должно совпадать с параметрами передачи php sql.
Просто измените БД QUERY на
СОЗДАТЬ СТОЛОВОЕ СОБЫТИЕ (
id INT NOT NULL ПЕРВИЧНЫЙ КЛЮЧ AUTO_INCREMENT,
event_title TEXT,
event_venue TEXT,
event_date1 DATE NOT NULL
event_date2 DATE NOT NULL
event_time1 TIME
event_time2 TIME
event_remarks TEXT,
event_blurbs TEXT,
event_organiser TEXT