PHP在提交时不会将sql数据发送到数据库?

时间:2016-03-17 18:53:14

标签: php html mysql sql

我是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();


?>

3 个答案:

答案 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.了解preparedPDOMySQLi语句,并考虑使用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"/>