gpt4 book ai didi

php - 为什么 PHP 从一个数据条目向 MySQL 插入多行?

转载 作者:行者123 更新时间:2023-11-30 22:47:27 24 4
gpt4 key购买 nike

我有一个 HTML 代码可以创建一个模板来收集 5 个变量。这些变量被发布到处理信息并将其转发到 mySQL 数据库的 php。

HTML 模板如下:

<html>

<head>
</head>

<body>
<form action="insert.php" method="post">
<p>Value1 <input type="text" name="value1" /></p>
<p>Value2 <input type="text" name="value2" /></p>
<p>Value3 <input type="text" name="value3" /></p>
<p>Value4 <input type="text" name="value4" /></p>
<p>Value5 <input type="text" name="value5" /></p>

<input type="Submit" />

</form>
</body>

</html>

这是与 MySQL 交互的 PHP 表单(请注意,# 已替换为原始表单中的实际值):

<?php
$server="#####";
$username="#####";
$password="######";
$database="#####";


$val1=$_POST['value1'];
$val2=$_POST['value2'];
$val3=$_POST['value3'];
$val4=$_POST['value4'];
$val5=$_POST['value5'];

$con = new mysqli($server,$username,$password,$database);
//Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$sql= "INSERT INTO test_table (value1, value2, value3, value4, value5) VALUES ('$val1','$val2','$val3','$val4','$val5')";

if (mysqli_query($con, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($con);
}

mysqli_close($con);

?>

这两种形式似乎工作正常,没有弹出任何错误。问题是,当我切换到 mysql 提示符并询问数据库以查看它是否工作时,它显示多个条目行而不是只有一个。我非常有信心这个问题与之前创建的数据库表无关。以防万一我发布了我用来创建表格的代码。

mysql> create table test_table (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
value1 VARCHAR(10),
value2 VARCHAR(10),
value3 VARCHAR(10),
value4 VARCHAR(10),
value5 VARCHAR(10))
;

因此,例如,如果我加载 html 表单并在字段中插入“a”、“b”、“c”、“d”和“e”,则输出在 mysql 中应该只有 1 条记录。相反,我得到了两个。(我无法发布输出图片,因为我没有足够的经验值)。我一直在努力解决这个问题,但找不到问题出在哪里。非常感谢任何帮助。

最佳答案

您的代码中没有任何内容会产生重复。如您所知,一种形式,如果由您的 PHP 代码处理一次,将只在数据库中生成一行,因此您要么发布到一个文件,然后导入另一个处理该形式不止一次的文件,要么您正在进行一些奇怪的重定向。

对于要注册两次(两行)的“a”、“b”、“c”、“d”和“e”,表单内容被发送到该 PHP 两次。首先,尝试确定您是否只提交一次:- 在 firefox 中安装 Live HTTP Headers,捕获 POST 并查看它是否只运行一次;您是否使用 jquery 来验证或处理表单提交?如果是这样,您是否阻止了正常事件的发生?否则,您可能会两次发布数据,一次通过 ajax,另一次通过普通浏览器发布。

关于php - 为什么 PHP 从一个数据条目向 MySQL 插入多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29200931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com