使用mysqli将post值添加到数据库

时间:2013-11-03 14:09:23

标签: php html mysqli


我似乎有一个问题将post值插入我的数据库,我没有看到编码中的错误。我一直在看它一段时间对我来说一切看起来都是正确的,但是当我使用表单并提交数据页面重新加载但没有数据插入到数据库中。
如果有人能帮我识别编码中的错误,我将不胜感激。

如果您有任何问题,请随时提出!

亲切的问候吉姆

FORM

<?php 

 //Show the form if the user is a Admin

 if(isset($_SESSION['username'])){
   $username == $_SESSION['username'];

   $results = $mysqli->query("SELECT authority FROM users WHERE username='$username' LIMIT 1");
   while($row = $results->fetch_object()){
     $aut = $row->authority;
     }
  } 
  if($aut == 1){
?>

<form action="index.php" method="post">
 <table>
  <tr>
   <td> &nbsp; Title: </td>
   <td><input type="text" name="title"></td>
  </tr>
  <tr>
   <td valign="top"> &nbsp; News: </td>
   <td><textarea name="information"></textarea></td>
  </tr>
  <tr>
   <td> <input type="hidden" value="news"> </td>
   <td><input type="submit"></td>
  </tr>
 </table> <hr>
</form>

的mysqli

<?php
}

//Insert into the database

if(isset($_POST['news'])){
 $title = $_POST['title'];
 $information = $_POST['information'];

 $mysqli->query("INSERT INTO  `news` (`title`, `information`) VALUES ( '".$title."', '".$information."')");
}

3 个答案:

答案 0 :(得分:1)

<input type="hidden" value="news">应为<input type="hidden" name="news">

这就是isset($_POST['news'])永远不会成真的原因。

答案 1 :(得分:1)

除了这个愚蠢的拼写错误问题,你的代码还会遇到两次真正的灾难。

  1. 您没有错误报告,这让您无法对付这些愚蠢的错误
  2. 您正在将数据直接添加到查询中,而应该使用占位符。

答案 2 :(得分:-1)

我不确定原始查询中的反引号和句​​点的用途是什么。在我有限的经验中,我的查询采用以下形式:

$mysqli->query("INSERT INTO news(title, information) VALUES ('$title', '$information')");

我会说优先级#1以php函数的返回值或访问php错误日志的形式获取一些调试信息。