使用PHP Form将数据更新到MySql数据库

时间:2013-10-08 20:18:13

标签: php mysql database forms sql-update

我希望有人可以帮助我。我正在尝试使用带有textarea的PHP表单将数据更新到MySql数据库中。 只要我使用在页面开头定义的随机字符串更新数据库,它就可以正常工作。但是当我尝试使用表单中收到的$ _POST ['text']更新数据库时,数据库中的值不会更新。

我真的不知道问题是什么,所以我希望有人可以帮助我完成这项工作。如果我的问题不够明确,请告诉我。

test.php的

<html>
<head>
  <script type="text/javascript" src="./js/tinymce/tinymce.min.js"></script>
  <script type="text/javascript">
    tinymce.init({
      selector: "textarea",
      plugins : 'advlist autolink autoresize autosave link image lists charmap media paste preview spellchecker',
      image_advtab: true
    });
  </script>
</head> 

<body>
  <?php
    $con=mysqli_connect("example.com","test","abc123","my_db");
    // Check connection
    if (mysqli_connect_errno())
    {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }                                  

    $result = mysqli_query($con,"SELECT content FROM page_content WHERE page = 'Zangpedagoog'");

    while($row = mysqli_fetch_array($result))
    {
      $text=$row['content'] ;
    }    
  ?>

  <form method="post" action="./send.php">
    <textarea name="text" width="100%">
    <?php echo $text ?>
    </textarea>
    <input id="submit" name="submit" type="submit" value="Send"></form></body></html>

send.php

<?php
  $update = $_POST['text'];
  echo $update;

  $random = '123456';
  echo $random;

  $con=mysql_connect("example.com","test","abc123","my_db");
  // Check connection
  if (!$con)
  {
    echo "Failed to connect to MySQL: " . mysql_connect_error();
  }

  mysql_query("UPDATE page_content SET content=$update WHERE page='Zangpedagoog'",$con);

  mysql_close($con);

?> 

1 个答案:

答案 0 :(得分:0)

我想它就在这里:

mysql_query("UPDATE page_content SET content=$update WHERE page='Zangpedagoog'",$con);

您将$ update直接放入字符串中。 这是非常危险和愚蠢的,但这不是你想要的。 我想,真正导致错误的是缺少'更新'。 现在值get直接放入查询中,而不是字符串,我认为你想要的。 请记住,这对SQL注入非常开放! 固定代码:

mysql_query("UPDATE page_content SET content='$update' WHERE page='Zangpedagoog'",$con);