当前位置: 首页 > 知识库问答 >
问题:

使用PHP从HTML表单向MySQL db插入数据

柴嘉石
2023-03-14

我正在尝试从HTML表单使用PHP向SQL数据库插入新记录。

我用Post方法制作了一个表单

<form name="CreatNewMCQ" action="create.php" method="POST">

带有提交按钮

<button type="submit" form="CreateNewMCQ">CREATE</button>

我想做的是,当我按下按钮时,它将调用create.php,这是

<?php
$servername = "localhost";
$user = "admin";
$pass = "admin";
$dbname = "examples";

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

$id = $_POST['id'];
$name = $_POST['name'];
$year = $_POST['year'];

$sql = "INSERT INTO cars (id, name, year)
VALUES ($id, $name, $year)";

if ($conn->query($sql) === TRUE) {
    echo "Tạo mới thành công";
} else {
    echo "Lỗi: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

然后将表单中的数据插入SQL数据库(表单中的id、名称、年份)。我在SQL语法中发现了一些错误。我犯了什么错误?

共有1个答案

彭烨烁
2023-03-14

确保所有post值正确获取。您应该在插入数据之前进行条件检查,例如:

$id = isset($_POST['id']) ? $_POST['id'] : '';
$name = isset($_POST['name']) ? $_POST['name'] : '';
$year = isset($_POST['year']) ? $_POST['year'] : '';

if($id && $name && $year){
$sql = "INSERT INTO cars (id, name, year)
VALUES ($id, '$name', '$year')";
}else{
  return "required fields are missing";
}

注意:如果可能,请发布您的html。

 类似资料:
  • 我正在尝试使用PHP从HTML表单中插入数据到数据库中。我做了两个文件html表单和其他是PHP脚本。当我单击以html表单提交时,它显示给我php代码。我正在使用wamp服务器作为数据库。我将html文件放在C:/wamp64/www目录中,html文件放在本地目录中。数据库表为:id int(11)fname varchar(30)salary int(11)。Id不是自动递增的,它是主键。

  • 我试图使用php/html表单将数据输入到mysql数据库中,但它不起作用,我不知道为什么。该记录没有插入,我只得到一个空白页后,我提交了表单。 谢谢,尤金妮 这是我的databaseenter图像描述 这是html表单: 这是php代码:

  • 对此非常新,我目前正在尝试为我的网站创建一个登录系统。我已经创建了一个html日志表单,我计划使用该表单为用户创建帐户。我已经创建了一个php页面,其中包含了我要连接到服务器的代码,如下所示。 当我填写表单时,我没有得到任何输出。我不确定php代码是在错误的地方(它是作为一个单独的文件)还是不期望输出。提交表单时,当我在测试时手动提交时,数据库似乎不会发生变化。 我的最终目标是能够将用户添加到数据

  • 问题内容: 我从终端创建了一个表,然后尝试创建简单的任务:从表单中插入值。这是我的 这是我的。 按下我的保存按钮后,什么也没有发生,数据库仍然为空。我尝试了查询,它按照预期的方式从表单中获取所有值。在尝试从终端检查是否可以正常工作后,我登录到尝试从users表返回所有数据的操作,但得到了空集。 问题答案: 以下代码仅声明了一个包含MySQL查询的字符串变量: 它不执行查询。为此,您需要使用一些功能

  • 问题内容: 我有这样的表格 我想要的$ _POST输出是一个像 我知道我可以做类似name =“ levels [1] [build_time]”之类的事情,但是由于这些元素是动态添加的,因此很难添加索引。还有其他办法吗? 编辑: 按照建议,我更改了表格。我现在也包含了我的整个HTML,因为我认为这里缺少一些内容。我的HTML现在: 我现在得到的输出是: 编辑2: 根据您的编辑建议,我编辑了表单并

  • 问题内容: 我开发了一种将许多东西插入数据库的表单。但是以某种方式,当页面被填满时,它也只插入数据库管理员的user_password。我该如何解决这个问题? 问题答案: 您忘记输入关键字“ VALUES”。检查INSERT INTO的语法。 您传递给MySQL的变量(“ $ name”,“ $ password”,“ $ email”,“ $ contact”,“ $ age”,“ $ gend