使用 PHP 将数据插入 MySQL 数据库时出现问题

Problem inserting data into MySQL db with PHP

我正在制作一个用户输入数据的应用程序,该数据被插入到数据库中,稍后显示给其他用户。问题是我无法将数据插入数据库。我已经制作了一个带有数据库的应用程序,但现在它不起作用。最糟糕的是我没有收到任何错误,因此它成功连接到数据库,只是没有插入数据库。使用 POST 方法将数据从 html 表单发送到 php 脚本。

这是我的代码:

<?php

$DATABASE_HOST = 'localhost';
$DATABASE_USER = 'root';
$DATABASE_PASS = '';
$DATABASE_NAME = 'mydb';

$con = mysqli_connect($DATABASE_HOST, $DATABASE_USER, $DATABASE_PASS, $DATABASE_NAME);
if (mysqli_connect_errno()) {
    exit('Failed to connect to MySQL: ' . mysqli_connect_error());
}


$stmt = $con->prepare("INSERT INTO matches (username, uid, level, timestamp) VALUES (?, ?, ?, ?)");
$timestamp = time();
$stmt->bind_param('sssi', $_POST['username'], $_POST['uid'], $_POST['level'], $timestamp);

$stmt->close();
$con->close();
?>

这里有一些 SQL 语句来复制我的数据库:

-- phpMyAdmin SQL Dump
-- version 5.0.2
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1:3306
-- Generation Time: Apr 06, 2021 at 07:18 AM
-- Server version: 5.7.31
-- PHP Version: 7.3.21

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `mydb`
--

-- --------------------------------------------------------

--
-- Table structure for table `matches`
--

DROP TABLE IF EXISTS `matches`;
CREATE TABLE IF NOT EXISTS `matches` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) NOT NULL,
  `uid` varchar(255) NOT NULL,
  `level` varchar(100) NOT NULL,
  `timestamp` timestamp(6) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

有人可以帮我吗,我已经找了将近两天的问题,快把我逼疯了!

如果你添加

$stmt->execute();

然后它应该可以工作或向您显示错误:)

基本上您正在准备查询,但查询未执行,因为您正在关闭连接