【问题标题】:insering HTML form data into MySQL database using PHP使用 PHP 将 HTML 表单数据插入 MySQL 数据库
【发布时间】:2021-06-22 03:00:28
【问题描述】:

我只是想弄清楚将表单数据插入数据库背后的逻辑。下面的代码(load.php)工作正常。 Howewer 我在 process.php 中收到了一个语法错误,此外我不确定我的插入代码是否正确。我也怀疑这段代码是否安全,在使用数据库时我应该考虑的关键安全因素是什么?我知道我问了很多问题,但我只是试图了解整个情况。我将不胜感激任何建议和想法。

谢谢!

**//process.php**

<?php
require ("load.php");
$fname= $_POST['fname'];
$lname= $_POST['lname'];

$sql = "INSERT INTO registration (firstname, lastname) VALUES ('$_POST[fname]','$_POST[lname]')";
if (mysqli_query($conn, $sql)) {
      echo "New record created successfully";
} else {
      echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>



**//load.php**


    <?php
    $servername = "localhost";
    $database = "registration";
    $username = "root";
    $password = "";

    $conn = mysqli_connect($servername, $username, $password, $database);
    if (!$conn) {
          die("Connection failed: " . mysqli_connect_error());
    }

    echo "Connected successfully";

    ?>




**//index.php**

<?php require ("load.php"); ?>

<html>
   <head>
      <title>Registration Form</title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   </head>
   <body>
      <h3>Registration Form</h3>
      <form name="registration" method="post" action="process.php">
      <table border="0" cellspacing="2" cellpadding="2">
         <tr><td>First Name:</td><td><input type="text" name="fname"></td></tr>
         <tr><td>Last Name:</td><td><input type="text" name="lname"></td></tr>
         <tr><td>&nbsp;</td><td><input type="submit" name="submit" value="Register"></td></tr>
      </table>
      </form>
   </body>
</html>

【问题讨论】:

标签: html mysql database


【解决方案1】:

尝试下面的 process.php 代码 这将有效

require ("load.php");

$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname)    VALUES (?, ?)");
$stmt->bind_param("ss", $firstname, $lastname);

$fname= $_POST['fname'];
$lname= $_POST['lname'];


if ($stmt->execute()) {
      echo "New record created successfully";
} 

$stmt->close();

【讨论】:

  • 并且包含查询的字符串的语法没有问题
  • 谢谢 Dhruvang!感谢您的帮助。
  • 我正在尝试解决代码中的错误,而不是关于安全性。 @RiggsFolly
  • @RiggsFolly 编辑为准备好的声明
  • $fname, $lname 应该是 $firstname, $lastname 或者反之亦然
猜你喜欢
  • 1970-01-01
  • 2017-05-14
  • 1970-01-01
  • 2019-01-12
  • 2017-08-08
  • 1970-01-01
  • 2017-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多