-3

私は現在、ユーザーがイベントを入力するための Web サイトを作成する学校のプロジェクトを行っています。しかし、私は現在、次のような問題に直面しています:

イベント タイトルを挿入できません エラー コード: 「フィールド リスト」の列「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
)
4

4 に答える 4

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 インジェクション攻撃を回避します

于 2015-10-11T08:57:09.230 に答える
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 に答える
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 と同じでなければならないためです。

于 2015-10-11T09:16:32.317 に答える