不正确的数据插入数据库

菜鸟

我正在尝试将来自HTML表单的数据插入phpmyadmin数据库。

我的JavaScript:

document.getElementById("submit").addEventListener('click',submit);
function submit(){
    const dForm = document.getElementById('details');          
    dForm.addEventListener('submit', function(e) {
        e.preventDefault();
        fetch("database_registration.php",{
        method: "post",
        body:JSON.stringify({'name': localStorage.getItem("name"),
                            'contact': localStorage.getItem("contact"),
                            'email': localStorage.getItem("email"),
                            'id_no': localStorage.getItem("id"),
                            'image': localStorage.getItem("image")}),
        headers: {'Accept': 'application/json',
                  'Content-Type': 'application/json',
                  'Access-Control-Allow-Headers': '*',
                  'Access-Control-Allow-Origin': '*',
                  'Access-Control-Allow-Methods': 'GET, POST, HEAD, OPTIONS'
                 },
        }).then(function (response){
            return response.text();
        }).then(function (text){
            console.log(text);
        }).catch(function (error){
            console.error(error);
        })
    });
}

javascript使用fetchapi向服务器发送请求,从接收数据,localStorage其中包含从HTML表单获取的所有输入

我的PHP脚本:

<?php
session_start();
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, HEAD, OPTIONS");
header("Access-Control-Allow-Headers: *");

$servername = "localhost"; 

$username = "root"; 

$password = ""; 

$date = date("Y-m-d");

$contentType = isset($_SERVER["CONTENT_TYPE"]) ? trim($_SERVER["CONTENT_TYPE"]) : '';

if ($contentType === "application/json") {

  $content = trim(file_get_contents("php://input"));

  $decoded = json_decode($content, true);

  if(! is_array($decoded)) {
      echo "Invalid json";

  } else {
      $name=$decoded['name'];
      $org_number=(int)$decoded['id_no'];
      $ph_number=(int)$decoded['contact'];
      $email=$decoded['email'];
      $image=base64_encode($decoded['image']);
  }
}

$conn = new mysqli($servername,  
            $username, $password, "Employee_information"); 
   
if ($conn->connect_error) { 
    die("Connection failure: " 
        . $conn->connect_error); 
}  
  
/*$sql="CREATE TABLE IF NOT EXISTS `Employees`(Sl_no INTEGER NOT NULL primary key AUTO_INCREMENT, Full_name varchar(30), 
      ID_no INT(2), Contact UNIQUE KEY INT(10), Email varchar(30), registration_date DATE, 
      ID_preview varchar(100))";
$conn -> query($sql);*/

$stmt = $conn->prepare("INSERT INTO `Employees` (Full_name, ID_no, Contact, Email, 
                                    registration_date, ID_preview) 
                                    VALUES (?, ?, ?, ?, ?, ?)");
$stmt->bind_param("siisss", $name, $org_number, $ph_number, $email, $date, $image);
$stmt->execute();

if($stmt->execute())
    echo "record inserted";
else
    echo $stmt->error;
   
$stmt->close();
$conn->close(); 
?>

例如:这是我以以下形式提供的输入:

在此处输入图片说明

但是在数据库中我得到:

在此处输入图片说明

如您所见,Contact数据不是我输入的数据。有人可以告诉我我在做什么错吗?

编辑:感谢@danblack,问题已解决;这次我执行了以下查询以创建表:

CREATE TABLE IF NOT EXISTS `Employees`(Sl_no SMALLINT NOT NULL primary key AUTO_INCREMENT, Full_name varchar(30), 
      ID_no SMALLINT, Contact varchar(10), Email varchar(30), registration_date DATE, 
      ID_preview varchar(100));

但是现在出现了一个新问题,我的数据一直连续插入两次。

丹布莱克

in in附近的数字int(2)int(10)不是长度说明符。它们是不推荐使用的显示宽度的东西。

一个int的最大值根据文档,并且大于此值的值将被截断(这是您拥有的)。

推荐存储电话号码是varchar因为它们不是传统意义上的有序号码。这也有助于以以下开头的区号或数字0

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

来自数据库的数据不正确

来自分类Dev

尝试插入SQL Server数据库时'PK'错误附近的语法不正确

来自分类Dev

在数据库中插入了不正确的值

来自分类Dev

错误:不正确的整数值:将表(.csv 文件)插入 MariaDB/MySQL 数据库

来自分类Dev

Django抛出不正确的数据库配置错误

来自分类Dev

PMA数据库...在phpMyAdmin升级中不正确

来自分类Dev

Sqoop增量导入(数据库模式不正确)

来自分类Dev

从数据库检索的HTML似乎不正确

来自分类Dev

关系数据库显示不正确

来自分类Dev

Sqoop增量导入(数据库模式不正确)

来自分类Dev

保存到数据库的值不正确

来自分类Dev

MS Access数据库是/否更新不正确

来自分类Dev

来自数据库的错误结果显示不正确

来自分类Dev

从数据库检索的HTML似乎不正确

来自分类Dev

数据库查询返回不正确的行

来自分类Dev

数据库方法语法不正确

来自分类Dev

当我尝试向数据库中插入项目时,它在','附近显示不正确的语法?

来自分类Dev

.Net C# 输入字符串的格式不正确。尝试将值插入 SQL Server 数据库

来自分类Dev

Rocket UNIVERSE数据库中带有查询的“数据类型不正确”

来自分类Dev

密码正确加密,但从数据库解密不正确

来自分类Dev

数组无效值插入不正确的插入数据?

来自分类Dev

使用不正确的日期值将csv导入Postgres数据库

来自分类Dev

连接字符串不正确?错误:尝试附加自动命名的数据库失败

来自分类Dev

MySQL数据库的时区设置不正确-为什么?

来自分类Dev

连接到any-db-mysql的数据库名称不正确

来自分类Dev

org.springframework.context.ApplicationContextException:数据库连接池配置不正确

来自分类Dev

在Visual Studio中显示Access数据库记录时,其顺序不正确

来自分类Dev

PHP MySQL CURRENT_TIMESTAMP在cPanel中的数据库中显示的时间不正确

来自分类Dev

Laravel:如果请求规则不正确,请登录数据库

Related 相关文章

  1. 1

    来自数据库的数据不正确

  2. 2

    尝试插入SQL Server数据库时'PK'错误附近的语法不正确

  3. 3

    在数据库中插入了不正确的值

  4. 4

    错误:不正确的整数值:将表(.csv 文件)插入 MariaDB/MySQL 数据库

  5. 5

    Django抛出不正确的数据库配置错误

  6. 6

    PMA数据库...在phpMyAdmin升级中不正确

  7. 7

    Sqoop增量导入(数据库模式不正确)

  8. 8

    从数据库检索的HTML似乎不正确

  9. 9

    关系数据库显示不正确

  10. 10

    Sqoop增量导入(数据库模式不正确)

  11. 11

    保存到数据库的值不正确

  12. 12

    MS Access数据库是/否更新不正确

  13. 13

    来自数据库的错误结果显示不正确

  14. 14

    从数据库检索的HTML似乎不正确

  15. 15

    数据库查询返回不正确的行

  16. 16

    数据库方法语法不正确

  17. 17

    当我尝试向数据库中插入项目时,它在','附近显示不正确的语法?

  18. 18

    .Net C# 输入字符串的格式不正确。尝试将值插入 SQL Server 数据库

  19. 19

    Rocket UNIVERSE数据库中带有查询的“数据类型不正确”

  20. 20

    密码正确加密,但从数据库解密不正确

  21. 21

    数组无效值插入不正确的插入数据?

  22. 22

    使用不正确的日期值将csv导入Postgres数据库

  23. 23

    连接字符串不正确?错误:尝试附加自动命名的数据库失败

  24. 24

    MySQL数据库的时区设置不正确-为什么?

  25. 25

    连接到any-db-mysql的数据库名称不正确

  26. 26

    org.springframework.context.ApplicationContextException:数据库连接池配置不正确

  27. 27

    在Visual Studio中显示Access数据库记录时,其顺序不正确

  28. 28

    PHP MySQL CURRENT_TIMESTAMP在cPanel中的数据库中显示的时间不正确

  29. 29

    Laravel:如果请求规则不正确,请登录数据库

热门标签

归档