Php Mysqli插入未发布

Php Mysqli插入未发布,php,database,mysqli,Php,Database,Mysqli,有人能帮我理解,为什么我的代码没有从这个表单插入数据到我的数据库中?我可以让它从同一个数据库中选择相同的信息并将其回显到页面中,但当我通过表单添加新数据时,它永远不会将其添加到数据库中 我没有收到任何错误,我在页面顶部设置了错误报告。我甚至设置了一个javascript警报,在单击submit按钮时捕获输入值,它们返回真实值。它们只是不会插入到数据库中 我做错了什么 <?php if(isset($_POST['addContent'])) { $addTitle = $_POST[

有人能帮我理解,为什么我的代码没有从这个表单插入数据到我的数据库中?我可以让它从同一个数据库中选择相同的信息并将其回显到页面中,但当我通过表单添加新数据时,它永远不会将其添加到数据库中

我没有收到任何错误,我在页面顶部设置了错误报告。我甚至设置了一个javascript警报,在单击submit按钮时捕获输入值,它们返回真实值。它们只是不会插入到数据库中

我做错了什么

<?php

if(isset($_POST['addContent'])) {
  $addTitle = $_POST['title'];
  $addEntry = $_POST['entry'];
  $sql = mysqli_query($conn, "INSERT INTO `basic` (`title, entry`) VALUES ('$addTitle', '$addEntry')") or die(mysqli_error($conn));
  $result = mysqli_query($sql);
  if(!$result) {
    echo mysql_error($sql);
  }
}
?>

<!-- Modal -->
<div class="modal fade" id="addContentModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel">Add Data</h4>
      </div>
      <div class="modal-body">

<form method="POST" action="">
  <input type="hidden" name="addContent" id="addContent" value="1">
  <div class="form-group">
    <label for="title">Title</label>
    <input  id="addTitle" name="addTitle" type="text" class="form-control">

  </div>
  <div class="form-group">
    <label for="entry">Entry</label>
    <textarea id="addEntry" name="addEntry" class="form-control" ></textarea>
  </div>

</form>

      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="submit" id="saveAddBtn" class="btn btn-primary" data-dismiss="modal">Save changes</button>
      </div>
    </div>
  </div>
</div>    
更新: 好的,下面是我试图解决你们启发我的一些问题。还是一样的结果…还有其他想法吗

<?php
if(isset($_POST['addContent'])) {
  $addTitle = $_POST['title'];
  $addEntry = $_POST['entry'];
 if($addTitle != "" && $addEntry != "")
{
  $sql = $conn->prepare("INSERT INTO basic VALUES ('',?,?)");
  $sql->bind_param('sss', $addTitle, $addEntry);

  $result = mysqli_query($sql);
  if(!$result) {
    echo mysqli_error($sql);
    }
  }
}
?>

<!-- Modal -->
<div class="modal fade" id="addContentModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel">Add Data</h4>
      </div>
      <div class="modal-body">

<form method="POST" action="">
  <input type="hidden" name="addContent" id="addContent" value="1">
  <div class="form-group">
    <label for="title">Title</label>
    <input  id="addTitle" name="title" type="text" class="form-control">

  </div>
  <div class="form-group">
    <label for="entry">Entry</label>
    <textarea id="addEntry" name="entry" class="form-control" ></textarea>
  </div>

</form>

      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <input type="submit" id="saveAddBtn" class="btn btn-primary" data-dismiss="modal" value="Save changes">
      </div>
    </div>
  </div>
</div>
将查询更改为:

$sql = mysqli_query($conn, "INSERT INTO `basic` (title, entry) VALUES ('$addTitle', '$addEntry')") or die(mysqli_error($conn));
$sql = mysqli_query($conn, "INSERT INTO `basic` (`title`, `entry`) VALUES ('$addTitle', '$addEntry')") or die(mysqli_error($conn));
反勾号正在影响查询。

将查询更改为:

$sql = mysqli_query($conn, "INSERT INTO `basic` (title, entry) VALUES ('$addTitle', '$addEntry')") or die(mysqli_error($conn));
$sql = mysqli_query($conn, "INSERT INTO `basic` (`title`, `entry`) VALUES ('$addTitle', '$addEntry')") or die(mysqli_error($conn));
反勾号正在影响查询。请注意,背面的记号单独围绕每一列,而不是围绕所有列。你的方式会建议你有一个名为title,entry的专栏。您还应该删除$result行,因为查询已经执行。现在您还必须将if语句更改为if$sql

更新


问题在于以下几行:

$sql = mysqli_query($conn, "INSERT INTO `basic` (`title`, `entry`) VALUES ('$addTitle', '$addEntry')") or die(mysqli_error($conn));
$result = mysqli_query($sql);

删除第一个mysqli_查询并将$sql设置为仅等于字符串,这将为您提供结果,而不是结果的结果。将结果用作查询时,它将返回布尔值false,并且还将单个而非整体地反勾每个列名:

我不敢相信我们中没有人能更快地发现这一点。但是我的提交按钮甚至不在表单标签内!我的朋友指出了这一点,解决了这个问题。谢谢大家的努力

您的代码对sql注入非常开放。您还混合了mysql和mysqli,这不起作用混合了mysql和mysqli,数据库连接丢失,标题,条目倒勾位置不正确您没有正确地用倒勾包围字段在查询中您使用了围绕标题的倒勾,一起输入。请查看我上面的更新。背景标记不影响查询,它们帮助mysql知道什么是关键字,什么是表/列名。这里肯定还有其他错误,我可以,我也同意,但是在很多情况下,在列名周围加上反勾有助于查询的执行,最好是让它们在这种情况下被错误地使用,这就是我所指的,当我说它们影响他的查询时……doneYou忘记了使用的双mysqli_查询,他正在使用查询结果,我刚刚注意到并更改了answer@ChuckRobertson我已经更新了答案。请注意,您现在混合了mysqli OOP和procedural。尝试了上面的代码,由于某些原因,它甚至不再呈现html。您在$addEntry=$conn->real_escape_string$_POST['entry']行中缺少括号;我现在添加了它和它的渲染,但没有插入静止。也没有错误。