简单的更新查询不起作用?

时间:2012-11-13 00:47:32

标签: php mysql forms

在编写了许多非常复杂的代码之后,这个代码给了我很多问题。

简单表格

<form action="res/scripts/editsubscriber.php" method="post">
<label for="name">Name: </label>
<input name="name" type="text" value="<?php echo $name; ?>">
...etc, etc...
</form>

提交此脚本:

  include('appvars.php');  
  if(isset($_POST['submit'])){
$id = $_POST['id'];
$name = $_POST['name'];
$email = $_POST['email'];
$month = $_POST['month'];
$day = $_POST['day'];
$year = $_POST['year'];
$date =  $_POST['date'];
$time = substr($date, 0, (stripos($date, " ")+1));
$time = str_replace($time, '', $date);
$created = $year.'-'.$month.'-'.$day.' '.$time;
$query = "UPDATE newslettersubscribers SET name = '$name', email = '$email', created = '$created' WHERE id = $id)";
mysqli_query($dbc, $query);
 }

它发布了,我已经回应了所有的变量,它们改变得很好,但它仍然不会更新数据库。有人请告诉我我错过了什么......

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

您的SQL查询中有一个奇怪的尾随)。你在SQL客户端执行过它吗?

答案 2 :(得分:0)

您是否有ID表单输入?

<input name="id" type="text" value="<?php echo $id; ?>">

另外,你没有逃避sql / html。

答案 3 :(得分:0)

此代码会严重影响数据库的安全性。由于在包含在查询中之前没有任何参数被清理,因此具有基本安全知识的任何人都可以在几秒钟内接管您的应用程序。

要解决安全问题您的错误,您可能需要查看 http://php.net/manual/en/pdo.prepared-statements.php