简体   繁体   中英

Inputting data from a HTML form to MYSQL using PHP error

I am having some trouble using PHP to input data into a MYSQL database from a form. Below I have included the files and I would just like to mention I've previously inputted data by changing the values:

VALUES ('Jake', 'Doe', 'john@example.com')";

and it works.

index.php

    <?php include 'assets/header.php';$title='Home Page';?> 
        <div class="context">
            <form action="connect_to_mysql.php" method="post">
                <label>First Name:</label>
                <input type="text" name="first_name" id="fist_name" required="required" placeholder="Please Enter First Name"/><br /><br />
                <label>Last Name:</label>
                <input type="text" name="last_name" id="last_name" required="required" placeholder="Please Enter Your Last Name"/><br/><br />
                <label>Email:</label>
                <input type="email" name="email" id="email" required="required" placeholder="Please Enter Your Email"/><br/><br />
                <input type="submit">
            </form>

   </div>
   <?php include 'assets/footer.php';?>

connect_to_mysql.php

<?php
        $servername = "localhost";
        $username = "root";
        $password = "";
        $dbname = "test";

        // Create connection
        $conn = new mysqli($servername, $username, $password, $dbname);
        // Check connection
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        }

        $first_name = mysql_real_escape_string($_POST['first_name']);
        $last_name = mysql_real_escape_string($_POST['last_name']);
        $email = mysql_real_escape_string($_POST['email']);

        $sql = "INSERT INTO hello_world (firstname, lastname, email)
        VALUES ('.$first_name', '.$last_name', '.$email')";

        if ($conn->query($sql) === TRUE) {
            echo "New record created successfully";
        } else {
            echo "Error: " . $sql . "<br>" . $conn->error;
        }

        $conn->close();

?>

Error:

Fatal error: Uncaught Error: Call to undefined function mysql_real_escape_string() in E:\\XAMPP\\htdocs\\mysql\\connect_to_mysql.php:14 Stack trace: #0 {main} thrown in E:\\XAMPP\\htdocs\\mysql\\connect_to_mysql.php on line 14

Use this code and check if the error still comes up Note: this code is connecting via the PDO class

<?php
            $servername = "localhost";
            $username = "root";
            $password = "";
            $dbname = "test";

            // Create connection
            $conn = new PDO('mysql:host='.$servername.';dbname='.$dbname.';', $username, $password);

            $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

            $first_name = mysql_real_escape_string($_POST['first_name']);
            $last_name = mysql_real_escape_string($_POST['last_name']);
            $email = mysql_real_escape_string($_POST['email']);

            $sql = $conn->prepare("
                INSERT INTO hello_world(first_name, lastname, email)
                VALUES (:firstname, :lastname, :email)
            ");
            $sql->execute([
                'firstname' => $firstname,
                'lastname' => $lastname,
                'email' => $email
            ]);

            if ($sql->rowCount() > 0) {
                echo "New record created successfully";
            }
            else
            {
                //error message
            }

    ?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM