0

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

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

测试.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>

发送.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);

?> 
4

1 回答 1

0

我猜它在这里:

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

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

mysql_query("UPDATE page_content SET content='$update' WHERE page='Zangpedagoog'",$con);
于 2013-10-08T20:25:28.563 回答