大家好,我需要一些帮助。我从服务器连接到数据库,可以插入一些信息,例如$sql = "INSERT INTO Posts (Text_Post) VALUES ('Sample Text')";
.现在我想将单击文本从<input type="text" />
保存到数据库。你能告诉我我做错了什么吗?
<?php
$servername = "google.com";
$username = "google";
$password = "google";
$dbname = "google";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if(isset($_POST['Submit'])) {
$sql = "INSERT INTO Posts (Text_Post) VALUES ('".$_POST['text']."')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
}
?>
<!DOCTYPE html>
<html>
<head>
<title>anonim</title>
</head>
<body>
<form name="form" action="" method="post">
<input type="text" name="text" id="text" value="Salut" /=>
<input type="submit" id="Submit" />
</form>
</body>
</html>
您在提交时缺少name
标记。将数据POST
到服务器时,它使用 name
标记。
<input type="submit" id="submit" name="Submit">
记得也要注意你的首都 - (因为你正在检查提交是否SET
那么你需要POST
提交)。
你可以做:
if(isset($_POST['text'])) {
另外,离开评论:我建议看看这个链接,因为你很容易进行SQL注入。
当我们要使用POST或GET发布表单时。 我们应该始终为所有 fied 命名,以便我们只需使用 $_POST['name'] 或 $_GET['name'] 即可获得它们。在您的情况下,只需为您的提交标签命名并检查数据是否已提交。
取代
<input type="submit" id="Submit" />
跟
<input type="submit" id="submit" name="submit">
并像检查一样
if(isset($_POST['submit'])) {// it will only check where form is posted or not
// your code...
}