2013-03-07 71 views
1

我已经看过一些其他类似的问题,但仍似乎无法得到它的工作。 FWIW,我没有收到任何具体的错误信息。PHP的MySQLi没有插入表

<?php 

// Create connection 
$con=mysqli_connect("localhost","username","password"); 
mysqli_select_db($con, "database"); 
//let's start our session, so we have access to stored data 
session_start(); 

$class = mysqli_real_escape_string($_SESSION['exclass']); 
$fullname = mysqli_real_escape_string($_SESSION['fullname']); 
$june = mysqli_real_escape_string($_SESSION['June']); 
$july = mysqli_real_escape_string($_SESSION['July']); 
$email = mysqli_real_escape_string($_POST['email']); 
$phone = mysqli_real_escape_string($_POST['phone']); 

//let's create the query 
$insert_query = "INSERT INTO Responses (class,fullname,June,July,email,phone) VALUES ('$class','$fullname',$june,$july,'$email','$phone',)"; 

//let's run the query 
$result = mysqli_query($con,$insert_query); 

if($result){ 
    echo "Your response has been recorded. Thank you!"; 

}else{ 

    printf("Insert failed: %s\n", mysqli_error()); 
} 
?> 
+1

当你通过命令行或者像phpmyadmin这样的工具直接在MySQL中运行查询时会发生什么? – 2013-03-07 17:27:40

+1

''$ phone''后面有一个尾随逗号,它打破了查询。不知道为什么你没有看到错误信息,但应该报告一个语法错误。 – 2013-03-07 17:28:53

+0

你有没有把'$ june,$ july'放在单引号中的原因? – PGallagher 2013-03-07 17:28:56

回答

3

MySQL不支持尾随逗号表示法。

因此,替换:

,'$phone',)

,'$phone')

此外,添加的回退条件以查看错误输出缓冲器:

mysqli_query($con, $insert_query) or die(mysqli_error($con));

+0

感谢所有指出尾随逗号的人,我确实想念那个。 – Echlori 2013-03-12 07:09:04

1
"INSERT INTO Responses (class,fullname,June,July,email,phone) VALUES ('$class','$fullname',$june,$july,'$email','$phone',<--- LOOK AT THIS COMMA) 

这将很可能解释未能插入数据库。从SQL字符串中删除逗号,它将正确解析。