[英]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.