使用HTML表单执行PHP脚本

使用HTML表单执行PHP脚本,php,html,mysql,Php,Html,Mysql,您好,亲爱的,为什么我总是学习php失败,如果有人能帮助我,我将不胜感激。:'( 我在这里一步一步地被跟踪: 但当我点击“提交查询”按钮时,什么也没发生,只是显示一个空白的白色屏幕,我看不到数据库中的新数据 <html> <body> <form action="insert.php" method="post"> Firstname: <input type="text" name="firstname"> Lastname: <inp

您好,亲爱的,为什么我总是学习php失败,如果有人能帮助我,我将不胜感激。:'( 我在这里一步一步地被跟踪:

但当我点击“提交查询”按钮时,什么也没发生,只是显示一个空白的白色屏幕,我看不到数据库中的新数据

<html>
<body>

<form action="insert.php" method="post">
Firstname: <input type="text" name="firstname">
Lastname: <input type="text" name="lastname">
Age: <input type="text" name="age">
<input type="submit">
</form>

</body>
</html> 


名字:
姓氏:
年龄:

您的表名是“persons”,而不是“persons”

在进行查询时,表名必须与数据库中的表名相同。如果查看phpMyAdmin,则表名为带小写字母的“persons”

编辑依据: @我可以吃奶酪汉堡

请在代码中更改表的名称,如,并确保将相应地换行引号:

  <?php
    $con=mysqli_connect("example.com","peter","abc123","my_db");
    // Check connection
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }



    $sql='INSERT INTO persons (Firstname, Lastname, Age)
VALUES
("'.$_POST['firstname'].'","'.$_POST['lastname'].'","'.$_POST['age'].'");

    if (!mysqli_query($con,$sql))
      {
      die('Error: ' . mysqli_error($con));
      }
    echo "1 record added";

    mysqli_close($con);
   ?> 

  • 一个空白屏幕意味着你大部分时间都在处理一些错误。你必须为你的本地开发打开错误报告。

  • 检查列名是否按大小写在脚本中,而不是在数据库中

  • 在大多数情况下,有一个ID列是您的唯一标识符是很方便的

  • 良好实践:开始使用

  • 首先,

    您需要将PHP配置更新为:
    内存限制=64M

    确保增加内存

    然后,您需要使用
    .htaccess
    文件启用错误报告,或者使用
    php.ini
    对其进行配置


    之后,您可以调试您的工作。

    常见错误是,您没有用引号包装POST数组索引

    像这样做:

    $sql='INSERT INTO persons (FirstName, LastName, Age)
    VALUES
    ("'.mysqli_real_escape_string($con,$_POST['firstname']).'","'.mysqli_real_escape_string($con,$_POST['lastname']).'","'.mysqli_real_escape_string($con,$_POST['age']).'");
    
    此外,正如@seblaze所提到的,表名区分大小写,因此使用
    persons
    而不是
    persons

    为了更安全,请使用预先准备好的语句。

    尝试下面的代码,

    在w3schools中,它使用mysqli,我也遇到了一些问题


    在链接中有一些示例代码,它使用mysql

    危险:你很容易受到你需要的攻击。注意
    //安全性转义变量
    教程中的一部分。谢谢你的建议亲爱的,我曾经听说过sql注入,也许当我了解PHP和sql时,我会一步一步地学习如何保护myself:)那么大写和小写都会生效吗?在这两个词中使用相同的词(表名和查询时)。如果数据库中有“persons”,那么在查询时也要加上“persons”哦,好的,你是对的。。非常感谢:)列也不匹配(
    FirstName
    =>
    FirstName
    LastName
    =>
    LastName
    )。像这样亲爱的$sql=“插入到persons(FirstName,LastName,Age)值(mysqli_real_escape_字符串(“$”POST[FirstName]”)、mysqli_real_escape_字符串(“$”POST[LastName]”)、mysqli_real_escape_字符串(“$”POST[Age]”);亲爱的非常感谢:)但是我不能同时给两个人名誉:(感谢亲爱的来到这里并试图帮助我:))好的亲爱的感谢来到这里,我将在那个网站上学习:)是的,也可以看看www.php.net/manual/en/上的手册,在那里你可以得到关于php函数的所有信息以及如何使用它。希望有了它你会有一个更好的主意。
    $sql='INSERT INTO persons (FirstName, LastName, Age)
    VALUES
    ("'.mysqli_real_escape_string($con,$_POST['firstname']).'","'.mysqli_real_escape_string($con,$_POST['lastname']).'","'.mysqli_real_escape_string($con,$_POST['age']).'");