【问题标题】:Not able to insert data using html form and php using wamp [duplicate]无法使用 html 表单和使用 wamp 的 php 插入数据 [重复]
【发布时间】:2023-03-24 14:29:01
【问题描述】:

我正在尝试使用 php 将数据从 HTML 表单插入数据库。我制作了两个文件 html 表单,另一个是 PHP 脚本。当我单击以 html 形式提交时,它会显示 php 代码。我正在使用 wamp 服务器作为数据库。我将我的 html 文件放在 C:/wamp64/www 目录中,并将 html 文件放在我的本地目录中。数据库表是: id int(11) fname varchar(30) 工资 int(11) 。 Id 不是自动递增的,它是一个主键。

HTML代码:

<html>
<body>

<h2>Employee's Information</h2>

<form action="employee.php" method="POST">
  <label for="id">Enter employee id:</label><br>
  <input type="text" id="id" name="id" value=""><br>
  <label for="fname">Enter First name:</label><br>
  <input type="text" id="fname" name="fname" value=""><br><br>
  <label for="salary">Enter Employee Salary:</label><br>
  <input type="text" id="salary" name="salary" value=""><br><br>
  <input type="submit" id="submit" name="submit" value="Submit">
</form>

</body>
</html>

php代码:

<?php
   
   $mysql_hostname="localhost"; 
   $mysql_username="root"; 
   $mysql_password=""; 
   $mysql_database="employee"; 

   $con=mysql_connect($mysql_hostname,$mysql_username,$mysql_password);
   
   if(!$con){
        die('Connection Error: '.mysql_error());
   }
   mysql_select_db($mysql_database, $con);
   if(isset($_POST['submit']))
   {
       $s_id = $_POST['id']; 
       $s_name = $_POST['fname']; 
       $salary = $_POST['salary']; 
       
       $employeeinsert = "INSERT INTO employee1
                                    (id, fname, salary) 
                            VALUES('".$s_id."','".$s_name."','".$salary."')";
       
        if(!mysql_query($employeeinsert,$con)) {
            echo "Error: " .mysql_error($con);
        } else {
            echo "1 record added";
        }      
    }
?>

代码在提交数据时既没有给出任何错误,也没有将数据插入数据库。 我没有得到错误是什么。

【问题讨论】:

  • mysql_connect ..?这真的 out of date.
  • 我也试过 mysqli_connect。结果是一样的。
  • 请不要使用字符串连接来构建 SQL 查询。查看准备好的语句以避免 SQL 注入

标签: php html mysql wamp64


【解决方案1】:

如果为假,则代码成功不产生输出:

if(isset($_POST['submit']))

这是怎么回事,因为条件是假的。表单有一个提交按钮,但该按钮没有name 属性,其值不会发送到服务器:

<input type="submit" value="Submit">

给它一个name

<input type="submit" name="submit" value="Submit">

对任何给定的代码分支进行某种指示总是一个好主意,即使只是在某处记录一些内容以便您可以看到正在发生的事情。如果按照指令执行,代码将很高兴不会产生任何输出/结果,但正如您发现的那样,它可能会让您不知道发生了什么。


顺便说一句,这很重要,您的代码对 SQL 注入开放。你会想start addressing that

【讨论】:

  • 尝试提供姓名和 ID,但结果仍然相同。
  • @userhmp:您可以编辑问题以添加更新的代码吗?这里也可能有不止一个问题需要解决。如果您不熟悉调试 Web 应用程序和 PHP 代码,那么这是一个很好的入门机会。
  • 我更新了html代码。另外,为了确保,我需要将 html 文件保存在 www 目录中吗?
  • @userhmp:现在是开始调试的时候了。查看浏览器的调试工具。提交表单后,检查在这些工具的网络选项卡中创建的条目。请求是否包含您的期望?回应是什么?还要检查您的 PHP 服务器日志是否有错误。有吗?确保 error reporting 已打开。在整个 PHP 代码中,添加 echo 语句以向客户端输出有用的信息。当你这样做时,你会观察到什么信息?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
  • 2017-05-14
  • 2021-10-01
  • 2017-10-20
  • 2015-02-27
  • 2018-01-16
相关资源
最近更新 更多