使用 PHP 将数据插入 MySQL 数据库时出现问题
Posted
技术标签:
【中文标题】使用 PHP 将数据插入 MySQL 数据库时出现问题【英文标题】:Problem inserting data into MySQL db with PHP 【发布时间】:2021-07-01 23:36:02 【问题描述】:我正在制作一个用户输入数据的应用程序,这些数据被插入到数据库中,稍后显示给其他用户。问题是我无法将数据插入数据库。我已经用数据库制作了一个应用程序,但现在它不起作用。最糟糕的是我没有收到任何错误,因此它成功连接到数据库,只是没有插入数据库。数据通过 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 */;
有人可以帮助我吗,我一直在寻找问题近两天,这让我发疯!????
【问题讨论】:
【参考方案1】:如果你添加
$stmt->execute();
那么它应该可以工作或显示你和错误:)
基本上您正在准备查询,但查询未执行,因为您正在关闭连接
【讨论】:
谢谢,在我的测试中,我多次更改了我的代码,当它不是导致问题的原因时,它是另一个...... @Noé 所以你承认这根本不是真正的问题? @Your Common Sense 因为我不知道问题是什么,我不知道问题是什么,但答案解决了问题。我只是说我迷失了所有的代码版本,而且我混合了很多。以上是关于使用 PHP 将数据插入 MySQL 数据库时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
Java - 使用 JDBC 连接到在线 MySQL 数据库时出现问题
将行插入 MySQL 表时出现 pymysql.err.ProgrammingError 错误(使用 Python、Flask、ClearDB)
Dapper.SimpleCRUD mysql 插入数据时出现的小插曲
插入大量数据时出现 mod_python/MySQL 错误:“OperationalError: (2006, 'MySQL server has gone away')”
在 MS Access (VBA) 中使用 ADODB 将非 ASCII 插入 MySQL 数据库时出现“不正确的字符串值”,但重试有效