2016-03-01 108 views
-2

请您帮我修复代码,以便我的SQL语句可以正常工作。我得到这个错误:我收到错误无法更新数据:您的SQL语法中有错误

Could not update data: 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 '​INSERT INTO student (UoB Number , First Name , Last Name , `Proposal' at line 1

我的代码如下:

if (isset($_POST['submit'])) { 
    $database = mysqli_connect("localhost", "root", "", "university"); //connection to database 
    if (mysqli_connect_errno()) { 
     echo "Failed to connect to MySQL: "; 
    } 
    $uob_number = mysqli_real_escape_string($database, $_POST['uob_number']); 
    $first_name = mysqli_real_escape_string($database, $_POST['first_name']); 
    $last_name = mysqli_real_escape_string($database, $_POST['last_name']); 
    $proposal = mysqli_real_escape_string($database, $_POST['proposal']); 
    $qualification_normal = mysqli_real_escape_string($database, $_POST['qualification_normal']); 
    $qualification_masters = mysqli_real_escape_string($database, $_POST['qualification_masters']); 
    $faculty = mysqli_real_escape_string($database, $_POST['faculty']); 
    $sql = "​INSERT INTO `student`(`UoB Number`, `First Name`, `Last Name`, `Proposal`, `Qualification_Normal`, `Qualification_Masters`, `Faculty`) VALUES ([$uob_number],[$first_name],[$last_name],[$proposal],[$qualification_normal],[$qualification_masters],[$faculty])"; 
    $retval = mysqli_query($database,$sql); 

    if (!$retval) { 
     die('Could not update data: ' . mysqli_error($database)); 
    } 
    echo "Updated data successfully\n"; 
    mysqli_close($database); //closes connection 
} 
+1

如果您不满意,可以留下评论为什么?别的,这只是浪费downvotes。 – martin

+1

@Martin基于downvotes的评论的离开已经在Meta上引起了广泛的争论。如果您将鼠标悬停在DV箭头上,您将看到DV的一些原因。 –

回答

1

您的查询很多语法错误:

$sql = "​INSERT [..snip...] VALUES ([$uob_number],[$first_name],[$last_name],[$proposal],[$qualification_normal],[$qualification_masters],[$faculty])"; 
            ^-----------^ 

MySQL不使用[]分隔值。它使用'

0

问题:

您与您创建存储逃脱数据的新PHP变量混淆$ _ POST变量数组索引(其中使用方括号)。

解决方案:

更改以下行:

$sql = "​INSERT INTO `student`(`UoB Number`, `First Name`, `Last Name`, `Proposal`, `Qualification_Normal`, `Qualification_Masters`, `Faculty`) 
VALUES ([$uob_number],[$first_name],[$last_name],[$proposal],[$qualification_normal],[$qualification_masters],[$faculty])"; 

$sql = "​INSERT INTO `student`(`UoB Number`, `First Name`, `Last Name`, `Proposal`, `Qualification_Normal`, `Qualification_Masters`, `Faculty`) 
VALUES ('$uob_number','$first_name','$last_name','$proposal','$qualification_normal','$qualification_masters','$faculty')"; 

注意,支架已经VALUES子句中被删除,并用单引号代替。

相关问题