2013-03-07 42 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字符串中刪除逗號,它將正確解析。