-3

我目前正在做一个学校项目,其中涉及创建一个网站供用户输入事件。但我目前面临以下问题:

无法插入事件标题错误代码:“字段列表”中的未知列“事件标题”]

这是我的编码:

<?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
)
4

4 回答 4

1

删除event_from列名,因为您的数据库表列与您在查询中提供的列名不匹配。所以使用:

$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');"

它应该工作

于 2015-10-11T09:35:04.747 回答
1

表中的列不以列表开头,event_而列表中的列以开头INSERTevent_像这样从所有列中删除

$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 注入攻击

于 2015-10-11T08:57:09.230 回答
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 传递参数的名称相同。

于 2015-10-11T09:16:32.317 回答
0

只需更改DB QUERY

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
)
于 2015-10-11T10:26:04.467 回答