2016-12-13 7 views
1

Ich kann nicht herausfinden, was diesen Einfügefehler für das Leben von mir verursacht. Es sollte nur ein einfacher Einschub sein, aber egal was ich tue oder ändere es wird es nicht akzeptieren. Ich habe die Syntax bei mehreren Quellen überprüft, und es scheint in Ordnung zu sein.SQL - Fehler: INSERT INTO

Datenbank und Tabelle drucken auch Erfolgsmeldungen.

-Code unten:

<?php 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
// Create connection 
$conn = new mysqli($servername, $username, $password); 
// Check connection 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 
echo "Connected successfully"; 
$sql = "CREATE DATABASE IF NOT EXISTS db_test"; 
if ($conn->query($sql) === TRUE) { 
echo "Database created successfully"; 
} else { 
echo "Error creating database: " . $conn->error; 
} 
$conn->close(); 
mysql_select_db(db_test, $conn); 
$sql = "CREATE TABLE IF NOT EXISTS test_table (
ID INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
Name VARCHAR(30) NOT NULL, 
Email VARCHAR(50) NOT NULL,)"; 
// create variables 
$full_name=$_POST['full_name']; 
$email=$_POST['email']; 
//Execute the query 
$sql = "INSERT INTO 'test_table' (ID, Name, Email) 
      VALUES('NULL', '$full_name' , '$email')"; 
      if ($conn->query($sql) === TRUE) { 
echo "New record created successfully"; 
} else { 
echo "Error: " . $sql . "<br>" . $conn->error; 
} 
$conn->close(); 
?> 
+2

wollen Sie nicht 'if ($ conn-> query ($ sql) === TRUE)' für die CREATE TABLE' Syntax auszuführen? – cha

Antwort

0

Innerhalb geposteten Code folgende Fehler auftreten:

1.You schließen die Verbindung nach Datenbank erstellen und wählen Sie dann Datenbank. $conn->close(); was erlaubt ist.

2.Syntax Fehler bei der Auswahl der Datenbank mysql_select_db(db_test, $conn);.

3. Sie führen die create table $sql Abfrage nicht aus.

4.Sie setzen das Tabellenfeld ID als NULL welches Primary key Ihrer Tabelle ist. Hoffe, es funktioniert ....

<?php 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
// Create connection 
$conn = new mysqli($servername, $username, $password); 
// Check connection 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 
echo "Connected successfully"; 
$sql = "CREATE DATABASE IF NOT EXISTS db_test"; 
if ($conn->query($sql) === TRUE) { 
echo "Database created successfully"; 
} else { 
echo "Error creating database: " . $conn->error; 
} 
//select database 
mysql_select_db($conn,'db_test'); 
$sql = "CREATE TABLE IF NOT EXISTS test_table (
ID INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
Name VARCHAR(30) NOT NULL, 
Email VARCHAR(50) NOT NULL 
)"; 
//create table 
if ($conn->query($sql) === TRUE) { 
echo "table created successfully"; 
} else { 
echo "Error creating tabel: " . $conn->error; 
} 
// create variables 
$full_name=$_POST['full_name']; 
$email=$_POST['email']; 
//Execute the query 
$sql = "INSERT INTO test_table (Name, Email) 
      VALUES('$full_name' , '$email')"; 
if ($conn->query($sql) === TRUE) { 
echo "New record created successfully"; 
} else { 
echo "Error: " . $sql . "<br>" . $conn->error; 
} 
$conn->close(); 
?> 
0

Es nicht Zitat um den Tabellennamen in der Abfrage, so richtige Abfrage werden sollte -

INSERT INTO test_table (ID, Name, Email) VALUES('NULL', '$full_name' , '$email') 
0

Ihre ID ist Autoinkrement, so dass Sie don‘ t brauchen Wert id zu geben

Sie schreiben können wie

INSERT INTO test_table (ID, Name, Email) VALUES(NULL, '$full_name' , '$email') 

OR

INSERT INTO test_table (Name, Email) VALUES('$full_name' , '$email')