2016-05-31 79 views
0

嗨我有一些问题,当我试图提交我的形式,似乎一切看起来很好,但我不知道为什么它仍然无法工作任何帮助将不胜感激。提交表单时MYSQL错误

的config.php

<?php 
$servername = "localhost"; 
$username = "release"; 
$password = ""; 
$dbname = "release"; 

// Create connection 
$con = new mysqli($servername, $username, $password, $dbname); 

// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 


?> 

submit.php

<?php 
include('config.php'); 

$producers = $_POST['producers']; 
$company = $_POST['company']; 
$title = $_POST['title']; 

if(!$producers or !$company or !$title) { 
    echo 'Please make sure to fill out all required feilds.'; 
} else { 
// Insert into DB 
$sql = "INSERT INTO release (id, producers, company, title) 
VALUES ('null', '$producers', '$company', '$title')"; 
} 

if ($con->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $con->error; 
}$con->close(); 
?> 

的index.php

<html> 
<head> 
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen"> 
<link href="css/bootstrap-responsive.min.css" rel="stylesheet" media="screen"> 
<script type="text/javascript" src="js/jquery-1.8.0.min.js"></script> 
<script type="text/javascript" src="js/bootstrap.min.js"></script> 
<style> 
input[type="text"] { 
    height: 30px; 
    } 
</style> 
<title>RRP &raquo; Welcome!</title> 
</head> 

<body> 
<div style="width: 1080px; margin-top: 50px;"> 
<h3>Welcome!</h3> 
<h4>You can edit the basic release form info below. <br /> Once done hit the "Submit" button to carry on to the new form!</h4> 

<div class="container"> 
     <form class="contact-us form-horizontal" action="submit.php" method="post">  
     <div class="control-group"> 
      <label class="control-label">Producers</label> 
      <div class="controls"> 
       <div class="input-prepend"> 
       <span class="add-on"><i class="icon-user"></i></span> 
        <input type="text" class="input-xlarge" name="producers" placeholder="Producers(seperate by commas)"> 
       </div> 
      </div> 
     </div> 

      <div class="control-group"> 
      <label class="control-label">Production Company</label> 
      <div class="controls"> 
       <div class="input-prepend"> 
       <span class="add-on"><i class="icon-globe"></i></span> 
        <input type="text" class="input-xlarge" name="company" placeholder="Rolling Ridges Productions"> 
       </div> 
      </div> 
     </div> 

      <div class="control-group"> 
      <label class="control-label">Title</label> 
      <div class="controls"> 
       <div class="input-prepend"> 
       <span class="add-on"><i class="icon-pencil"></i></span> 
        <input type="text" class="input-xlarge" name="title" placeholder="Desperate Measures"> 
       </div> 
      </div> 
     </div> 

     <div class="control-group"> 
      <div class="controls"> 
      <button type="submit" class="btn btn-primary">Submit</button> 
      <button type="button" class="btn">Cancel</button> 
      </div>  
     </div> 
     </form> 
</body> 
</html> 

错误

Error: INSERT INTO release (id, producers, company, title) VALUES ('null', 'lol', 'lol', 'lol') 
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'release (id, producers, company, title) VALUES ('null', 'lol', 'lol', 'lol')' at line 1 

解决:是为增加蜱release

+1

添加HTML表单 –

+1

什么错误的表现? – JYoThI

+1

也添加mysql错误,你看到 –

回答

2

释放一个MySQL keyword简单,并应在反引号括起来:'release`

+0

它应该在评论区 – JYoThI

+0

哦shiet,感谢这.... – Jordan

0

在我看来,这id不应该被分配字符串值'null'。通常id列自动递增,在这种情况下,你应该简单地忽略列:

$sql = "INSERT INTO `release` (producers, company, title) 
VALUES ('".addslashes($producers)."', '".addslashes($company)."', '".addslashes($title)."'"; 

addslashes是保护再次SQL injection。你还应该净化你的输入:

$producers = strval($_POST['producers']); 
$company = strval($_POST['company']); 
$title = strval($_POST['title']); 
1

尝试使用表名反引号,如果它是关键字release

$sql = "INSERT INTO `release` (id, producers, company, title) 
      VALUES ('null', '$producers', '$company', '$title')"; 
0

而且最好是写你的数据库的格式如下 数据库名称 - >db_name例如db_release和 表名称 - >tb_name例如tb_release

以免关键字错误

+1

我个人更喜欢简单的未装饰的名称,以减少我的代码中的混乱。 –

+0

yaah它不是很糟糕,但我建议你先用db_或tb_ –