Как исправить & quot; неизвестный столбец в ‘списке полей’ & quot;

В настоящее время я делаю школьный проект, который включает создание веб-сайта для пользователей, чтобы вводить события. Но в настоящее время я сталкиваюсь с этой проблемой:

Невозможно вставить заголовок события
Код ошибки:
Неизвестный столбец ‘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

)

-3

Решение

Столбцы в вашей таблице не начинаются с 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-инъекций

1

Другие решения

Удалите 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’) «;
Он должен работать

1

Запрос БД должен быть изменен как этот

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.

0

Просто измените БД 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

0
По вопросам рекламы [email protected]