2016-03-01 82 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子句中被刪除,並用單引號代替。

相關問題