2013-05-10 62 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'] . "'" 
)