2016-05-31 83 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_ –