我的php表单正在SQL中插入空行

我的php表单正在SQL中插入空行,php,html,mysql,Php,Html,Mysql,下面是我的代码: 谁能看出我错在哪里 <?php include("secure/connect.php"); //Confirm document reading $document = $_POST["document"]; $user_name = $_POST["p_name"]; $confirmation = $_POST["confirm"]; $comment = $_POST["query"]; $insert="INSERT INTO documentcon

下面是我的代码: 谁能看出我错在哪里

<?php

include("secure/connect.php");

//Confirm document reading
$document = $_POST["document"]; 
$user_name = $_POST["p_name"]; 
$confirmation = $_POST["confirm"]; 
$comment = $_POST["query"];

$insert="INSERT INTO documentconfirmation (document,p_name,confirm,query) VALUES 
  ('$document', '$user_name','$confirmation','$comment')";

$result3 =mysqli_query($conn,$insert) or die (mysqli_error($conn));?>'

我会使用一个事先准备好的语句。根据经验,即使在开发代码中,我也总是使用预先准备好的语句
A) 它们通常设计有良好的、自文档化的界面,从而产生更清晰、更易理解的代码,并且
B) 这意味着您不必在生产前重构代码库(最好不要在生产中使用未准备好的语句)

使用php中的mysqli驱动程序执行此操作(使用OOP)

//语句对象的构造函数
$stmt=$conn->prepare(“插入文档确认(文档、p_名称、确认、查询)”值
(?, ?, ?, ?)");
//绑定参数ssbs代表字符串bool string
$stmt->bind_param('ssb',$document,$user_name,$confirmation,$comment);
//执行该语句
$stmt->execute();

我还要检查这些变量的值是否不为空,因为这可能是另一个问题,并且是由于不正确地过帐到脚本而导致的

您是否使用相同的脚本来显示表单和处理提交?然后,您需要检查表单是否提交了类似于
if(isset($\u POST['submit'])的内容
submit
替换为表单中提交按钮的名称。在将变量插入数据库之前,可能还需要验证/清理变量。造成这种情况的两个常见原因是未将表单方法设置为post,以及未命名或错误命名表单输入。(假设请求是一个表单提交。)危险:你很容易受到你自己需要的信息的攻击。