未捕获的异常“PDOException”,我的表单不会发布到我的phpmyadmin数据库


Uncaught exception 'PDOException', my forms won't post to my phpmyadmin database

嗨,当我去发布表单时,我不断收到此错误。

致命错误:未捕获的异常"PDOException",消息为"SQLSTATE[42S22]":找不到列:1054/home/u717042829/public_html/paststudent.php:273 中"字段列表"中的未知列"attendanc" 堆栈跟踪:#0/home/u717042829/public_html/paststudent.php(273):PDOStatement->execute(Array) #1 {main} 在第 273 行扔进/home/u717042829/public_html/paststudent.php

我不确定我的代码出了什么问题。

<?php 
error_reporting(E_ALL); ini_set('display_errors', 1);
require("includes/config.php");
//if not logged in redirect to login page
if(!$user->is_logged_in()){ header('Location: login.php'); } 
//define page title
$title = 'Register Past Student';
?>
<html>
 
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">
    <title>Past Student</title>
    <!-- Bootstrap Core CSS -->
    <link href="css/bootstrap.min.css" rel="stylesheet">
  
    <!-- Custom Fonts -->
    <link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
</head>
<form class="form-horizontal" method="post" action= "">
<fieldset>

<!-- Form Name -->
<legend> <a href= "memberpage.php"> Register A Past Student </a> </legend>

<!-- Text input-->
<div class="form-group">
  <label class="col-md-4 control-label" for="name">Student Name</label>  
  <div class="col-md-4">
  <input id="name" name="name" type="text" placeholder="First and Last Name" class="form-control input-md" required="">
    
  </div>
</div>
  <div class="form-group">  
  <label class="col-md-4 control-label" for="subject1">Subject 1</label>
  <div class="col-md-4">
    <select id="subject1" name="subject1" class="form-control">
      <option value="Chemistry">Chemistry</option>
      <option value="Computing">Computing</option>
      <option value="Economics">Economics</option>
      <option value="Further Maths">Further Maths</option>
      <option value="Physics">Physics</option>
    </select>
  </div>
</div>
<!-- Select Basic -->
<div class="form-group">
  <label class="col-md-4 control-label" for="grade1">Grade 1</label>
  <div class="col-md-4">
    <select id="grade1" name="grade1" class="form-control">
      <option value="A">A</option>
      <option value="B">B</option>
      <option value="C">C</option>
      <option value="D">D</option>
      <option value="E">E</option>
      <option value="U">U</option>
    </select>
  </div>
</div>
<!-- Select Basic -->
<div class="form-group">
  <label class="col-md-4 control-label" for="subject2">Subject 2</label>
  <div class="col-md-4">
    <select id="subject2" name="subject2" class="form-control">
      <option value="Chemistry">Chemistry</option>
      <option value="Computing">Computing</option>
      <option value="Economics">Economics</option>
      <option value="Further Maths">Further Maths</option>
      <option value="Physics">Physics</option>
    </select>
  </div>
</div>
<!-- Select Basic -->
<div class="form-group">
  <label class="col-md-4 control-label" for="grade2">Grade 2</label>
  <div class="col-md-4">
    <select id="grade2" name="grade2" class="form-control">
      <option value="A">A</option>
      <option value="B">B</option>
      <option value="C">C</option>
      <option value="D">D</option>
      <option value="E">E</option>
      <option value="U">U</option>
    </select>
  </div>
</div>
<!-- Select Basic -->
<div class="form-group">
  <label class="col-md-4 control-label" for="subject3">Subject 3</label>
  <div class="col-md-4">
    <select id="subject3" name="subject3" class="form-control">
      <option value="Chemistry">Chemistry</option>
      <option value="Computing">Computing</option>
      <option value="Economics">Economics</option>
      <option value="Further Maths">Further Maths</option>
      <option value="Physics">Physics</option>
    </select>
  </div>
</div>
<!-- Select Basic -->
<div class="form-group">
  <label class="col-md-4 control-label" for="grade3">Grade 3</label>
  <div class="col-md-4">
    <select id="grade3" name="grade3" class="form-control">
      <option value="A">A</option>
      <option value="B">B</option>
      <option value="C">C</option>
      <option value="D">D</option>
      <option value="E">E</option>
      <option value="U">U</option>
    </select>
  </div>
</div>
<!-- Select Basic -->
<div class="form-group">
  <label class="col-md-4 control-label" for="subject4">Subject 4</label>
  <div class="col-md-4">
    <select id="subject3" name="subject4" class="form-control">
      <option value="Chemistry">Chemistry</option>
      <option value="Computing">Computing</option>
      <option value="Economics">Economics</option>
      <option value="Further Maths">Further Maths</option>
      <option value="Physics">Physics</option>
    </select>
  </div>
</div>
<div class="form-group">
  <label class="col-md-4 control-label" for="grade4">Grade 4</label>
  <div class="col-md-4">
    <select id="grade1" name="grade4" class="form-control">
      <option value="A">A</option>
      <option value="B">B</option>
      <option value="C">C</option>
      <option value="D">D</option>
      <option value="E">E</option>
      <option value="U">U</option>
    </select>
  </div>
</div>
<!-- Multiple Radios (inline) -->
<div class="form-group">
  <label class="col-md-4 control-label" for="attendanc">Attendance %</label>
  <div class="col-md-4"> 
    <label class="radio-inline" for="attendanc-0">
      <input type="radio" name="attendanc" id="attendanc-0" value="99-100" checked="checked">
      99-100
    </label> 
    <label class="radio-inline" for="attendanc-1">
      <input type="radio" name="attendanc" id="attendanc-1" value="97-98">
      97-98
    </label> 
    <label class="radio-inline" for="attendanc-2">
      <input type="radio" name="attendanc" id="attendanc-2" value="95-96">
      95-96
    </label> 
    <label class="radio-inline" for="attendanc-3">
      <input type="radio" name="attendanc" id="attendanc-3" value="">
      93-94
    </label> 
    <label class="radio-inline" for="attendanc-4">
      <input type="radio" name="attendanc" id="attendanc-4" value="">
      91-92
    </label> 
    <label class="radio-inline" for="attendanc-5">
      <input type="radio" name="attendanc" id="attendanc-5" value="">
      90 or less
    </label>
  </div>
</div>
<!-- Multiple Radios -->
<div class="form-group">
  <label class="col-md-4 control-label" for="gender">Gender</label>
  <div class="col-md-4">
  <div class="radio">
    <label for="gender-0">
      <input type="radio" name="gender" id="gender-0" value="Male" checked="checked">
      Male
    </label>
  </div>
  <div class="radio">
    <label for="gender-1">
      <input type="radio" name="gender" id="gender-1" value="Female">
      Female
    </label>
  </div>
  </div>
</div>
<!-- Button -->
<div class="form-group">
  <label class="col-md-4 control-label" id="submit">Click Submit</label>
  <div class="col-md-4">
    <button id="singlebutton" type="submit" name="submit" class="btn btn-success">Submit</button>
  </div>
</div>
</fieldset>
</form>
<?php 
//require("includes/config.php");
error_reporting(E_ERROR | E_WARNING | E_PARSE);
if (isset($_POST['name'])) { //checks if the name has posted value then inserts the data
        $name     = $_POST['name'];
        $subject1 = $_POST['subject1'];
        $grade1   = $_POST['grade1']; 
        $subject2 = $_POST['subject2'];
        $grade2   = $_POST['grade2'];
        $subject3 = $_POST['subject3'];
        $grade3   = $_POST['grade3'];
        $subject4 = $_POST['subject4'];
        $grade4   = $_POST['grade4'];
        $attendanc = $_POST['attendanc'];
        $gender     = $_POST['gender'];
          $q        = "INSERT INTO paststudent (name,subject1,grade1,subject2,grade2,subject3,grade3,subject4,grade4,attendanc,gender) VALUES (:name, :subject1,:grade1,:subject2,:grade2,:subject3,:grade3,:subject4,:grade4,:attendanc,:gender);"; //sql statement add a colon intead of variables so pdo can prepare the statement and prevent any sql injections 
          $query    = $db ->prepare ($q);
          $results  = $query ->execute (array(  
                  ":name"     => $name,  //points to the variable 
                  ":subject1" => $subject1,
                  ":grade1"   => $grade1,
                  ":subject2" => $subject2,
                  ":grade2"   => $grade2,
                  ":subject3" => $subject3,
                  ":grade3"   => $grade3,
                  ":subject4" => $subject4,
                  ":grade4"   => $grade4,
                ":attendanc" => $attendanc,
                ":gender"     => $gender
                )); 
        }
  
?> 

很明显

出了什么问题。

MySQL 返回错误。MySQL告诉您列attendanc不是paststudent中的有效列。

查看 INSERT 语句中的列列表,并将其与表中列的名称进行比较。(我怀疑你从专栏名称中遗漏了一个e...... attendance,但这只是一个猜测,因为我们看不到表定义。