【发布时间】:2020-01-19 04:39:56
【问题描述】:
所以我有一个 HTML 文件,格式如下:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form action="pringles.php" method="post">
First name:<br>
<input type="text" name="firstname" value="Mickey">
<br>
Last name:<br>
<input type="text" name="lastname" value="Mouse">
<br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
然后我有一个 PHP 文件名为 pringles.php,其中包含以下代码:
<?php
// server, username, password, db, port
$servername = "********";
$username = "*******";
$password = "********";
$dbname = "*********";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
foreach ($_POST as $key => $value) {
$postdata2 = $postdata2 . "Field ".htmlspecialchars($key)." is ".htmlspecialchars($value) . "////";
}
$sql = "INSERT INTO `test`(`text`) VALUES ('{$postdata2}')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
?>
但是,当我提交表单时,它会在我的数据库中插入一行,但文本字段为空。由于某种原因未发送 post 变量。此外,我还有另一个 .php 文件,其中的表单可以完美运行。它们都在同一个文件夹中,因此我不明白为什么这不起作用。
谢谢!
【问题讨论】:
-
var_dump($postdata2)显示什么? -
为什么要将所有的 POST 都输入到一栏中?或者您想为每个人创建一个新列?什么是 db 架构/列类型?
-
除了@u_mulder 提到的内容,使用他们的建议,然后将
$sql转储到那里,看看你会得到什么。您的问题在某种程度上还不清楚。 -
@u_mulder 它显示为 NULL
-
还有
var_dump($_POST)?