将输入保存到数据库中


Save input into database

大家好,我需要一些帮助。我从服务器连接到数据库,可以插入一些信息,例如$sql = "INSERT INTO Posts (Text_Post) VALUES ('Sample Text')";.现在我想将单击文本从<input type="text" />保存到数据库。你能告诉我我做错了什么吗?

 <?php
      $servername = "google.com";
      $username = "google";
      $password = "google";
      $dbname = "google";
    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 
    if(isset($_POST['Submit'])) {
            $sql = "INSERT INTO Posts (Text_Post) VALUES ('".$_POST['text']."')";
            if ($conn->query($sql) === TRUE) {
                echo "New record created successfully";
            } else {
                echo "Error: " . $sql . "<br>" . $conn->error;
            }
            $conn->close();
    }
  ?>
  <!DOCTYPE html>
  <html>
  <head>
    <title>anonim</title>
  </head>
  <body>
    <form name="form" action="" method="post">
      <input type="text" name="text" id="text" value="Salut" /=>
      <input type="submit" id="Submit" /> 
    </form>
  </body>
  </html>

您在提交时缺少name标记。将数据POST到服务器时,它使用 name 标记。

<input type="submit" id="submit" name="Submit">

记得也要注意你的首都 - (因为你正在检查提交是否SET那么你需要POST提交)。

你可以做:

if(isset($_POST['text'])) {

另外,离开评论:我建议看看这个链接,因为你很容易进行SQL注入。

当我们要使用POST或GET发布表单时。 我们应该始终为所有 fied 命名,以便我们只需使用 $_POST['name'] 或 $_GET['name'] 即可获得它们。在您的情况下,只需为您的提交标签命名并检查数据是否已提交。

取代

<input type="submit" id="Submit" />  

<input type="submit" id="submit" name="submit">

并像检查一样

if(isset($_POST['submit'])) {// it will only check where form is posted or not
// your code...
}