2016-12-13 142 views
1

我无法弄清楚是什么原因导致这个插入错误的生活。它应该只是一个简单的插入,但不管我做什么或更改它都不会接受它。我已经验证了多种来源的语法,看起来很好。SQL - 错误:INSERT INTO表

数据库和表都会打印成功消息。下面

代码:

<?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

你不想为'CREATE TABLE'语法执行'if($ conn-> query($ sql)=== TRUE)'吗? – cha

回答

0

在您发布的代码下面是错误:

1.You关闭创建数据库,然后选择数据库连接后。 $conn->close();这是允许的。

2.选择数据库mysql_select_db(db_test, $conn);时出现语法错误。

3.您不执行创建表$sql查询。

4.您将表格字段ID设置为NULL,即表格的Primary key。 希望工程....

<?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

不应该有引号围绕在查询中的表名,所以正确的查询将是 -

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

ID是自动递增,所以你不要”吨需要给予价值ID

您可以编写

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

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