【问题标题】:Inputting data from a HTML form to MYSQL using PHP error使用 PHP 错误将数据从 HTML 表单输入到 MYSQL
【发布时间】:2017-01-16 16:06:42
【问题描述】:

我在使用 PHP 从表单将数据输入 MYSQL 数据库时遇到了一些问题。下面我已经包含了这些文件,我想提一下我之前通过更改值输入了数据:

值('Jake'、'Doe'、'john@example.com')";

它有效。

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();

?>

错误:

致命错误:未捕获错误:调用未定义函数 mysql_real_escape_string() 在 E:\XAMPP\htdocs\mysql\connect_to_mysql.php:14 堆栈跟踪:#0 {main} 在第 14 行的 E:\XAMPP\htdocs\mysql\connect_to_mysql.php 中抛出

【问题讨论】:

  • 您使用的是 PHP 7 吗?如果是这样,所有mysql* 函数都已被删除,这就是mysql_real_escape_string 引发“未定义函数”错误的原因。请考虑改用mysqli_real_escape_string 函数,因为您已经在使用mysqli(事实上,您永远不应该在任何地方使用任何mysql* 函数)。
  • 你也不要用双引号连接。目前,您的名字、姓氏和电子邮件都将以. 开头。

标签: php mysql forms


【解决方案1】:

使用此代码并检查错误是否仍然出现 注意:此代码通过 PDO 类连接

<?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
            }

    ?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 2017-08-25
    • 2015-09-28
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    相关资源
    最近更新 更多