我是PHP的新手,我正在制作一个插入函数,它将html输入插入到我的Sql数据库中,但是当我提交时没有任何反应,并且没有信息输入到数据库中。有关如何获取提交到数据库的输入信息的任何帮助将不胜感激。
<html>
<head>
</head>
<body>
<div align = "center">
<form method = "POST" class="basic-grey">
<h1><i>Insert</i></h1>
<label>Title :<input type = "text" name="title"/></label>
<label>Content :<input type = "text" name="content"/></label>
<label>User :<input type = "text" name="user"/></label>
<label><input type = "submit" value = "submit"/></label>
</form>
<div style = "font-size:11px; color:#cc0000; margin-top:10px"><?php echo $error ?></div>
</div>
</html>
<?php
include_once 'db_config.php';
session_start();
if (!(isset($_SESSION['login_user']) && $_SESSION['login_user'] != '')) {
header ("Location: login2.php");
}
if(isset($_POST["submit"])) {
$title = $_POST['title'];
$content = $_POST['content'];
$user = $_POST['user'];
$sql = "INSERT INTO 'diary' ('ID', 'TITLE', 'CONTENT', 'USER')
VALUES (NULL, '$title','$content', '$user',)";
if ($conn->query($sql) === TRUE) {
header("location: results.php");
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
$conn->close();
?>
答案 0 :(得分:1)
您的脚本无法工作,因为您没有任何名称“提交”的内容。让if(isset($_POST["submit"])) {
来测试。通过命名提交按钮修复此问题:
<label><input type="submit" name="submit" value="submit"/></label>
点击后,按钮的名称将显示在$_POST
数组中。
此外:session_start()
应该在您打开PHP标记之后。
Your script is at risk for SQL Injection Attacks.了解prepared和PDO的MySQLi语句,并考虑使用PDO,it's really pretty easy。
您的错误检查将显示您已引用而不是返回勾选的表和列名称,并且您有一个额外的逗号。更改您的插入查询,如下所示:
$sql = "INSERT INTO `diary` (`ID`, `TITLE`, `CONTENT`, `USER`) VALUES (NULL, '$title','$content', '$user')";
答案 1 :(得分:0)
您使用的是无效的mysql语法。您使用错误的字符串文字'表名和列名。你可以使用这个`,或者根本不使用文字。
选项1:
$sql = "INSERT INTO `diary` (`ID`, `TITLE`, `CONTENT`, `USER`) VALUES (NULL, '$title','$content', '$user')";
选项2:
$sql = "INSERT INTO diary (ID, TITLE, CONTENT, USER) VALUES (NULL, '$title','$content', '$user')";
答案 2 :(得分:0)
也许你没有使用'submit'这个名称来执行:
<input type="submit" **name="simpan"** value="SIMPAN"/>