简体   繁体   English

如何修复“字段列表中的未知列”

[英]How do I fix "Unknown column in 'field list'"

I am currently doing a school project which involves creating a website for users to input events.我目前正在做一个学校项目,其中涉及为用户创建一个网站来输入事件。 But I am currently facing this problem of:但我目前面临以下问题:

Cannot insert event title Error Code: Unknown column 'event_title' in 'field list' ]无法插入事件标题错误代码:“字段列表”中的未知列“event_title”]

this is my coding:这是我的编码:

<?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!";
}

?>

this is my coding in phpmyadmin database "events" ...I'm currently using XAMPP这是我在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
)

The columns in your table do not start with event_ whereas the columns in your INSERT list do.表中的列不以event_开头,而INSERT列表中的列则以。 Remove the event_ from all columns like this从这样的所有列中删除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')"; 

You should consider using mysql_* functions, these will be removed in future versions.您应该考虑使用mysql_*函数,这些将在未来版本中删除。 Also sanitize the data passed from a form before using in any database operation to avoid SQL injection attacks在用于任何数据库操作之前,还要清理从表单传递的数据,以避免 SQL 注入攻击

Remove event_from the column names as your database table columns is mismatches with the column name you provided with the query.删除event_from列名,因为您的数据库表列与您随查询提供的列名不匹配。 So use :所以使用:

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

It should work它应该工作

The DB query should be changed as this:数据库查询应更改为:

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
);

Or you can try changing the PHP script as或者您可以尝试将 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')"; 

Don't do both changes.不要同时进行两种更改。 The error is because the name of attributes in the table must be the same as PHP SQL passing parameters.该错误是因为表中的属性名称必须与 PHP SQL 传递参数的名称相同。

Just change the DB QUERY to只需将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
)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM