2015-10-11 3 views
-3

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

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

)

+2

изменения 'event_title' в' title' внутри вашего запроса (то же самое для других полей). – Alexander

ответ

1

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

0

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

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 проходных параметров ..

3

Удалить событие_ из имен столбцов, так как столбцы таблицы базы данных не совпадают с именем столбца, которое вы предоставили с запросом. Таким образом, использование: $ sql = "INSERT в event (название, место проведения, дата1, дата2, время1, время2, примечания, рекламные объявления, организатор) VALUES ('$ e_title', '$ e_venue', '$ e_date1', ' $ e_date2 ',' $ e_time1 ',' $ e_time2 ',' $ e_remarks ',' $ e_blurbs ',' $ e_organiser ') "; Он должен работать

0

Просто измените DB QUERY в CREATE TABLE EVENT ( ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, event_title TEXT, event_venue TEXT, event_date1 ДАТА NOT NULL event_date2 ДАТА NOT NULL event_time1 TIME event_time2 ВРЕМЯ event_remarks TEXT, event_blurbs TEXT, event_organiser ТЕКСТ