为什么查询不插入记录


Why query not inserting record

我正在尝试在数据库中插入简单的两个值,但它们既没有插入也没有给出错误。 我不知道发生了什么。我还尝试在 if 语句之外进行 sql 查询,但它不起作用。

请帮忙

编码文件

<?php 
    include 'includes/db_connection.php';

    if (isset($_POST['submit']))
     {
       $name = test_input($_POST["name"]);
       $fathername = test_input($_POST["fathername"]);

    $sql = "INSERT INTO student (name,fathername)
    VALUES ('$name','$fathername')";
    mysqli_query($conn, $sql);
    if(mysqli_query($conn, $sql))
    {
        $last_id = mysqli_insert_id($conn);
        echo "New record created successfully. Last inserted ID is: " . $last_id;
    }
    else 
    {
        echo "Error: " . $sql . "<br>" . mysqli_error($conn);
    }
     function test_input($data) {
       $data = trim($data);
       $data = stripslashes($data);
       $data = htmlspecialchars($data);
       return $data;
    }
    }

    ?>

    <!DOCTYPE html>
    <!--
    To change this license header, choose License Headers in Project Properties.
    To change this template file, choose Tools | Templates
    and open the template in the editor.
    -->
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery-form-validator/2.2.43/jquery.form-validator.min.js"></script>
        </head>

        <body>
            <form action="valid_test.php" method="post" id="registration-form">
            <div>
        Name
        <input name="name" data-validation="length alphanumeric" 
             data-validation-length="6-15" 
             data-validation-error-msg="User name has to be an alphanumeric value (6-15 chars)">
        </div>
        <div>
        Father Name
        <input name="fathername" data-validation="length alphanumeric" 
             data-validation-length="6-20" 
             data-validation-error-msg="User name has to be an alphanumeric value (6-20 chars)">
        </div>
           <div>
        <input type="submit" value="Validate">
        <input type="reset" value="Reset form">
      </div>
    </form>

当我们发布HTML表单时,元素会发布name属性。

您缺少提交按钮name属性。

改变:

<input type="submit" value="Validate">

自:

<input type="submit" value="Validate" name="submit">

由于提交按钮没有name属性,因此条件

if (isset($_POST['submit']))没有得到满足,因此代码不起作用。

另外,您正在重复mysqli_query($conn, $sql);.删除它的第一个实例。

首先,在你的PHP中,$conn在哪里:你试图插入一些不存在的东西。其次,你的SQL不太正确,而不是这样,你应该有这样的东西:

$sql = "INSERT INTO student (name, fathername) VALUES (" . $name . ", " . $fathername . ");";

你在问题中所做的是,你把"$name"和"$fathername"作为单独的字符,你想要的是变量的值,这就是你这样做的方式。

问候