我目前正在做一个学校项目,涉及创建一个网站供用户输入事件。但我目前面临的问题是:
无法插入事件标题 错误代码: 未知列' 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数据库中的编码&#34; events&#34; ...我目前正在使用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
)
答案 0 :(得分: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注入攻击
答案 1 :(得分:1)
从列名中删除event_,因为数据库表列与您在查询中提供的列名不匹配。
所以使用:
$ sql =“INSERT into event
(标题,地点,日期1,日期2,时间1,
time2,remarks,blurbs,organizer)VALUES('$ e_title','$ e_venue','$ e_date1','$ e_date2','$ e_time1','$ e_time2','$ e_remarks','$ e_blurbs', '$ e_organiser')“;
它应该工作
答案 2 :(得分:0)
db查询应该更改为
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 :(得分:0)
只需将DB QUERY更改为 创建表事件( id INT NOT NOT PRIMARY KEY AUTO_INCREMENT, event_title文字, event_venue文字, event_date1 DATE NOT NULL event_date2 DATE NOT NULL event_time1 TIME event_time2时间 event_remarks TEXT, event_blurbs文本, event_organiser文字