2013-05-10 124 views
-4

在下面的代碼,我犯錯誤了一個T_CONSTANT_ENCAPSED_STRING錯誤SQL查詢錯誤「T_CONSTANT_ENCAPSED_STRING」錯誤

$query = "INSERT INTO Accounts (FirstName,LastName,Email,Phone,salt,passwd,City,State) 
    VALUES ('" 
     . $_POST['FirstName'] . "','" 
     . $_POST['LastName'] . "','" 
     . $_POST['Email'] . "','" 
     . $_POST['Phone'] . "','" 
     . $salt . "','" 
     . hashPasswd($_POST['passwd'], $salt "','" 
     . ($_POST['City'] 
     . "','" 
     . ($_POST['State'] . "' 
    ); 

編輯:感謝在這個問題上大家所有幫助。對於這個可憐的問題感到抱歉,當時我是S/O的新手,沒有讀到how to ask a good question on S/O,我知道它更熟悉。再次感謝耐心。

+4

** Oy ** ...您的代碼非常適合SQL注入...您可能需要閱讀該主題.. – Lix 2013-05-10 22:12:42

+0

這種構建查詢的方式會讓你非常容易受到SQL注入的影響。你應該使用PDO。 – 2013-05-10 22:12:50

+0

哦,它不僅僅用於課堂上的測試網站。 (我希望代碼中還有更多的東西,只是有人需要找到錯誤的部分)。 – 2013-05-10 22:13:44

回答

1

試試這個。您最後錯過了"以關閉插入"。我已經打破了界限,以便您可以輕鬆識別丟失的引號

+0

嘿@Yogus,感謝您在這裏完成的工作。這非常有幫助和清楚。 – 2013-09-09 18:26:48

1

你缺少一個"在一行的末尾:

. ($_POST['State'] . "'" 

三關)的和.

. hashPasswd($_POST['passwd'], $salt "','") 
    . ($_POST['City']) 
    . "','" 
    . ($_POST['State'] . "'") 
) 

Cleand了最後三個行應該如:

. hashPasswd($_POST['passwd'], $salt) ."','" 
    . $_POST['City'] . "','" 
    . $_POST['State'] . "'" 
)