PHP未能发布到MySQL数据库

时间:2022-12-04 15:39:08

I have a formText.php file that contains a form with the following code form code:

我有一个formText。包含以下代码的表单的php文件:

<form action="insert.php" method="post">
    <p>
        <label for="theNames">Name:</label>
        <input type="text" name="theName" id="theName">
    </p>
    <p>
        <label for="theCitys">City:</label>
        <input type="text" name="theCity" id="theCity">
    </p>
    <p>
        <label for="theAges">Are you over eighteen?(Y/N)</label>
        <input type="text" name="theAge" id="theAge">
    </p>
    <p>
    <label for="theDates">Date:</label>
    <input type="text" name="theDate" id="theDate">
    </p>
    <input type="submit" value="Submit">
</form>

Then I have an insert.php file with the following script:

然后是插入。php文件,脚本如下:

<?php
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$link = mysqli_connect("localhost", "root", "root","phpteste");

// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}

// Escape user inputs for security (EDITED)
$theName = mysqli_real_escape_string($link, $_POST['theName']);
$theCity = mysqli_real_escape_string($link, $_POST['theCity']);
$theAge = mysqli_real_escape_string($link, $_POST['theAge']);
$theDate = mysqli_real_escape_string($link, date("Y-m-d h:i:s",$_POST['theDate']));


// attempt insert query execution
$sql = "INSERT INTO tabelateste (id, name, city, overeighteen, date) VALUES (NULL, '$theName', '$theCity', '$theAge', '$theDate')";
if(mysqli_query($link, $sql)){
    echo "Records added successfully.";
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

// close connection
mysqli_close($link);
?>

My database is called phpteste and my table name is tabelateste. What am I doing wrong here? Whenever I click Submit nothing comes up and nothing gets added to the database.

我的数据库名为phpteste,表名为tabelateste。我在这里做错了什么?每当我单击Submit时,就不会出现任何内容,也不会向数据库添加任何内容。

4 个解决方案

#1


2  

Your post data name fields are wrong. SO you need to change below line:

您的post数据名称字段是错误的。所以你需要在下面行修改:

// Escape user inputs for security
$theName = mysqli_real_escape_string($link, $_POST['theName']);
$theCity = mysqli_real_escape_string($link, $_POST['theCity']);
$theAge = mysqli_real_escape_string($link, $_POST['theAge']);
$theDate = mysqli_real_escape_string($link, date("Y-m-d h:i:s",$_POST['theDate']));

You need to change date to signup_date as per your database table structure.

您需要根据数据库表结构将date更改为signup_date。

$sql = "INSERT INTO tabelateste (name, city, overeighteen, signup_date) VALUES ('$theName', '$theCity', '$theAge', '$theDate')";

#2


0  

$sql = "INSERT INTO tabelateste (`name`, `city`, `overeighteen`, `date`) VALUES ('$theName', '$theCity', '$theAge', '$theDate')";

Use this code

使用这个代码

#3


0  

I just tested your code (copied and pasted) and it works perfectly under my server configuration (Windows 10 - PHP 5.6) . My best guess is that you have a typo in either the table name or the MySQL configuration.

我刚刚测试了您的代码(复制和粘贴),它在我的服务器配置(Windows 10 - PHP 5.6)下运行良好。我最大的猜测是,您在表名或MySQL配置中都有一个错码。

If you copied this code from another site. Please check that you created the database and the table , and that the MySQL configuration is correct.

如果您从另一个站点复制了这段代码。请检查您是否创建了数据库和表,以及MySQL配置是否正确。

A good to check for this kind of mistakes so is to read the PHP error logs

检查此类错误的一个好方法是读取PHP错误日志

#4


0  

Try it like this maybe

试试这样吧。

if(isset($_POST['submit']) && !empty($_POST) ){

$theName = $_POST['theName'];
$theCity  = $_POST['theCity'];
$theAge = $_POST['theAge'];
$theDate = $_POST['theDate'];

            $servername = "localhost";
            $username = "root";
            $password = "root";
            $dbname = "phpteste";

    // Create connection
            $conn = new mysqli($servername, $username, $password, $dbname);

    // Check connection
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
            }



        $sql = "INSERT INTO tabelateste (name, city, overeighteen, date)
        VALUES ('$theName ', '$theCity ', '$theAge ', '$theDate ')";

            if ($conn->query($sql) === TRUE) {
            $last_id = $conn->insert_id;

            } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
        }
    }

#1


2  

Your post data name fields are wrong. SO you need to change below line:

您的post数据名称字段是错误的。所以你需要在下面行修改:

// Escape user inputs for security
$theName = mysqli_real_escape_string($link, $_POST['theName']);
$theCity = mysqli_real_escape_string($link, $_POST['theCity']);
$theAge = mysqli_real_escape_string($link, $_POST['theAge']);
$theDate = mysqli_real_escape_string($link, date("Y-m-d h:i:s",$_POST['theDate']));

You need to change date to signup_date as per your database table structure.

您需要根据数据库表结构将date更改为signup_date。

$sql = "INSERT INTO tabelateste (name, city, overeighteen, signup_date) VALUES ('$theName', '$theCity', '$theAge', '$theDate')";

#2


0  

$sql = "INSERT INTO tabelateste (`name`, `city`, `overeighteen`, `date`) VALUES ('$theName', '$theCity', '$theAge', '$theDate')";

Use this code

使用这个代码

#3


0  

I just tested your code (copied and pasted) and it works perfectly under my server configuration (Windows 10 - PHP 5.6) . My best guess is that you have a typo in either the table name or the MySQL configuration.

我刚刚测试了您的代码(复制和粘贴),它在我的服务器配置(Windows 10 - PHP 5.6)下运行良好。我最大的猜测是,您在表名或MySQL配置中都有一个错码。

If you copied this code from another site. Please check that you created the database and the table , and that the MySQL configuration is correct.

如果您从另一个站点复制了这段代码。请检查您是否创建了数据库和表,以及MySQL配置是否正确。

A good to check for this kind of mistakes so is to read the PHP error logs

检查此类错误的一个好方法是读取PHP错误日志

#4


0  

Try it like this maybe

试试这样吧。

if(isset($_POST['submit']) && !empty($_POST) ){

$theName = $_POST['theName'];
$theCity  = $_POST['theCity'];
$theAge = $_POST['theAge'];
$theDate = $_POST['theDate'];

            $servername = "localhost";
            $username = "root";
            $password = "root";
            $dbname = "phpteste";

    // Create connection
            $conn = new mysqli($servername, $username, $password, $dbname);

    // Check connection
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
            }



        $sql = "INSERT INTO tabelateste (name, city, overeighteen, date)
        VALUES ('$theName ', '$theCity ', '$theAge ', '$theDate ')";

            if ($conn->query($sql) === TRUE) {
            $last_id = $conn->insert_id;

            } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
        }
    }