2016-05-31 10 views
0

Hallo Ich habe einige Probleme, wenn ich versuche, eine Form von mir einzureichen, alles scheint gut zu meinem Ende, aber ich bin nicht ganz sicher, warum es immer noch nicht funktioniert jede Hilfe wäre willkommen .MYSQL FEHLER beim Einreichen des Formulars

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> 

Fehler

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 

Entschlossen: wie so einfach war Zecken release

+1

fügen Sie Ihre HTML-Formular –

+1

welche Fehler zeigt, zu vermeiden? – JYoThI

+1

Fügen Sie auch mysql Fehler hinzu, den Sie sehen –

Antwort

2

Release Zugabe ist ein MySQL keyword und sollte in Backticks eingeschlossen werden: `release`

+0

sollte es im Kommentarbereich sein – JYoThI

+0

Oh shiet, danke dafür .... – Jordan

0

Es scheint mir, dass id sollte nicht zugeordnet werden der Zeichenfolgenwert 'null'. Typischerweise id Spalten sind Autoinkrement, in diesem Fall sollten Sie einfach die Spalte auslassen:

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

Die addslashes ist wieder zu schützen SQL injection. Sie sollten sanieren auch Ihre Eingaben:

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

try Backticks in Tabellennamen zu verwenden, wenn es Schlüsselwort ist release

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

Auch ist es besser, Ihre Datenbank in folgendem Format Datenbanknamen zu schreiben ->db_name zB db_release und Tabellenname ->tb_name zB tb_release

um Schlüsselwörter Fehler

+1

Ich persönlich bevorzuge einfache undecorated Namen, um Unordnung in meinem Code zu reduzieren. –

+0

yaah es ist nicht so schlimm, aber ich rate dir, mit db_ oder tb_ zu beginnen –

Verwandte Themen