PHP MYSQL->;执行失败:(1048)列';标题';不能为空错误

PHP MYSQL->;执行失败:(1048)列';标题';不能为空错误,php,mysql,forms,post,Php,Mysql,Forms,Post,我今天在编写HTML/JS/PHP Web表单时遇到了一个奇怪的错误 “执行失败:(1048)列'title'不能为空” 我的表格工作方式如下 提交时,我的HTML表单接受输入的值,并将它们发送到javascript函数“processIdea()”。然后,此函数检查是否存在错误,如果未找到任何错误,则将表单发布到ideaSubmission.php。这段代码的目的是获取发布的值,检查它们是否存在,然后将它们插入我的Mysql数据库 这是我的3个文件*注意,在我对某个字段进行修复时,该字段被禁用

我今天在编写HTML/JS/PHP Web表单时遇到了一个奇怪的错误

“执行失败:(1048)列'title'不能为空”

我的表格工作方式如下

提交时,我的HTML表单接受输入的值,并将它们发送到javascript函数“processIdea()”。然后,此函数检查是否存在错误,如果未找到任何错误,则将表单发布到ideaSubmission.php。这段代码的目的是获取发布的值,检查它们是否存在,然后将它们插入我的Mysql数据库

这是我的3个文件*注意,在我对某个字段进行修复时,该字段被禁用-我知道这一点:)*

HTML格式:

<form id="submit_idea" action ="submitIdea.php" method="POST">
                            <fieldset> 
                                <legend>Idea submission</legend>
                                <label for="title">Title</label>
                                <input type="text" name="title"/>
                                <br>
                                <label for="brief">Brief</label>
                                <input type="text" name="brief"/>
                                <br>
                                <label for="problem">Problem</label>
                                <input type="text" name="problem"/>
                                <br>
                                <label for="solution">solution</label>
                                <input type="text" name="solution"/>
                                <br>
                                <label for="audience">audience</label>
                                <input type="text" name="audience"/>
                                <br>
                                <label for="prediction">prediction</label>
                                <input type="text" name="prediction"/>
                                <br>
                                <label for="constraints">constraints</label>
                                <input type="text" name="constraints"/>
                                <br>
                            <!--<label for="categories">Please select applicable categories / from the list below</label>
                                <input type="checkbox" id="categories" name"categories[]" value"App" />&nbsp;App<br />>
                                <input type="checkbox" name"categories[]" value"business_venture" />&nbsp;Business venture<br />>
                                <input type="checkbox" name"categories[]" value"home-ware" />&nbsp;Home-ware<br />>
                                <input type="checkbox" name"categories[]" value"technology" />&nbsp;Technology<br />>
                                <input type="checkbox" name"categories[]" value"furniture" />&nbsp;Furniture<br />>
                                <input type="checkbox" name"categories[]" value"art" />&nbsp;Art<br />>
                                <input type="checkbox" name"categories[]" value"jewellery" />&nbsp;Jewellery<br />>
                                <input type="checkbox" name"categories[]" value"fashion" />&nbsp;Clothing / Fashion<br />>
                                <input type="checkbox" name"categories[]" value"culinary" />&nbsp;Culinary<br />>
                                <input type="checkbox" name"categories[]" value"misc" />&nbsp;Misc<br /> -->
                                <button type="submit" onclick="processIdea();">Submit</button>
                                <div style="clear:both;"></div>
                            </fieldset>
                        </form>
PHP:


谢谢大家的帮助

编辑:ajaxSubmit是一个jquery表单插件,源于此


正如您在php代码和
var\u dump($\u POST)的结果中所看到的那样,
提交想法从未提交过,因此,如果设置了($\u POST['submit\u idea'),将其他发布的值设置为适当的变量,它永远不会进入


在表单中提交该值或在php中更改您的条件

那么
var\u dump($title)
揭示了什么?它给了我这个;对不起,我应该解释一下,我对这一切还是半生不熟的!与您的问题无关,但如果您使用的是预先准备好的语句,则不需要使用
mysqli\u real\u escape\u string()
函数似乎不会发送任何数据。
ajaxSubmit
在哪里定义?@MikeW谢谢,我不确定-我会删掉那部分。WesleyMurch我有一个jquery表单插件,我现在将它编辑到线程中。
$("document").ready(function() {
 $("#submit_idea").submit(function() {
  processIdea();
  return false;
 });
});

function processIdea() {

 var errors = '';

 // Validate title
 var title = $("#submit_idea [name='title']").val();
 if (!title) {
  errors += ' - Please enter a title\n';
 }
 // Validate brief
 var brief = $("#submit_idea [name='brief']").val();
 if (!brief) {
  errors += ' - Please enter a short idea brief\n';
 }
 // Validate Problem
 var problem = $("#submit_idea [name='problem']").val();
 if (!problem) {
  errors += ' - Please discribe the problem you want to solve\n';
 }
 //Validate Solution
  var solution = $("#submit_idea [name='solution']").val();
 if (!solution) {
  errors += ' - Please discribe your solution to the above problem\n';
 }
 //Validate Audience
  var audience = $("#submit_idea [name='audience']").val();
 if (!audience) {
  errors += ' - Please discribe the audience your solution targets\n';
 }
  //Validate Prediction
  var prediction = $("#submit_idea [name='prediction']").val();
 if (!prediction) {
  errors += ' - Please discribe the prediction you want to solve\n';
 }
  //Validate constraints
  var constraints = $("#submit_idea [name='constraints']").val();
 if (!constraints) {
  errors += ' - Please discribe the constraints of your solution\n';
 }
 //Validate Categories
 // var categories = $("#submit_idea  [name='categories[]']:checked").length;
 //if (!categories) {
 // errors += ' - Please select the category your solution falls within\n';
 //}

 if (errors){
  errors = 'The following errors occurred:\n' + errors;
  alert(errors);
  return false;
 } else {

  // Submit our form via Ajax and then reset the form
  $("#submit_idea").ajaxSubmit({success:showResult, type: 'post'});
  return false;
 } 
}

function showResult(data) {
 if (data == 'save_failed') {
  alert('Form save failed, please contact your administrator');
  return false;
 } else {
  $("#submit_idea").clearForm().clearFields().resetForm();
  alert('Form save success');
  return false;
 }
}
<?php
//Starts session
include_once '/includes/db_connect.php';
include_once '/includes/functions.php';
sec_session_start(); 

if(login_check($mysqli) == true) {

// Retrieve form data
if (empty($_POST)){
 echo "empty!"; }

if(isset($_POST['submit_idea'])){
  if(isset($_POST['title'])){ $title = $_POST['title']; } 
  if(isset($_POST['brief'])){ $brief = $_POST['brief']; } 
  if(isset($_POST['problem'])){ $problem = $_POST['problem']; } 
  if(isset($_POST['solution'])){ $solution = $_POST['solution']; } 
  if(isset($_POST['audience'])){ $audience = $_POST['audience']; } 
  if(isset($_POST['prediction'])){ $prediction = $_POST['prediction']; } 
  if(isset($_POST['constraints'])){ $constraints = $_POST['constraints']; } 
  // if(isset($_POST['categories'])){ $categories = $_POST['categories']; } 


  if (!$title || !$brief || !$problem || !$solution || !$audience || !$prediction || !$constraints) {
    echo "save_failed";
    return;
  }
  //


  //Convert categories array to a serialized string
  // $categories_list = serialize($categories);

  //if (!$link) {
  // echo "save_failed";
  // return; 
  //}
  //mysql_select_db($db['idea']);

  // Clean variables before performing insert
  $clean_title = $mysqli->real_escape_string($title);
  $clean_brief = $mysqli->real_escape_string($brief);
  $clean_problem = $mysqli->real_escape_string($problem);
  $clean_solution = $mysqli->real_escape_string($solution);
  $clean_audience = $mysqli->real_escape_string($audience);
  $clean_prediction = $mysqli->real_escape_string($prediction);
  $clean_constraints = $mysqli->real_escape_string($constraints);
  // $clean_categories_list = mysql_real_escape_string($categories_list);
} 
else {
  // Perform insert
  $now = time();

  $user_id = $_SESSION['user_id'];

  if(!$stmt = $mysqli->prepare("INSERT INTO idea_thread (user_id, time, title, Brief, problem, solution, audience, prediction, constraints) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)")) {echo "Prepare failed!";}

  if(!$stmt->bind_param('issssssss', $user_id, $now, $clean_title, $clean_brief, $clean_problem, $clean_solution, $clean_audience, $clean_prediction, $clean_constraints)){echo "Binding parameters failed:";}

  if(!$stmt->execute()){echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;}

  // if (@mysql_query($sql, $link)) {
    echo "success";
  }
  // return;
  //} else {
  // echo "save_failed";
  // return;
  //}
  } else { 
    echo "How did you get here? Please log in first!";
    header("Location: ../signup.php");
    exit;
  }
?>