解析错误:语法错误,代码PHP中出现意外的T_CONSTANT_ENCAPSED_STRING

时间:2012-07-08 23:57:30

标签: php

$sSql = "INSERT INTO comments
     ( post_id,name, email, website,content)
     VALUES (".$_POST[postid]",'".$_POST[name]"', '".$_POST[email]"', '"$_POST[website]"',  '"$_POST[content]"')";

我收到以下错误。有人可以帮忙解决这个问题吗? 解析错误:语法错误,代码中出现意外的T_CONSTANT_ENCAPSED_STRING

6 个答案:

答案 0 :(得分:2)

你的字符串没有正确连接,你在$ _POST []之前和之后缺少一些.

答案 1 :(得分:0)

错误是string concatenation缺少.而数组缺少qoutes

$sSql = "INSERT INTO comments
 ( post_id,name, email, website,content)
 VALUES (".$_POST['postid'].",'".$_POST['name']."', '".$_POST['email']."', '".$_POST['website']."',  '".$_POST['content']."')";

使用mysql_escape_string来避免sql injectionbest way to avoid sql injection

答案 2 :(得分:0)

你需要用两个句号包装。 .$_POST[postid].

另外,请确保转义$_POST参数,因为它可能会受到SQL注入。

答案 3 :(得分:0)

$ _ POST应该用作关联数组。所以键应该在引号中:$ _POST ['key']

答案 4 :(得分:0)

这是因为你忘记了一些点 - 你的查询中出现了意想不到的字符串。

$sSql = "INSERT INTO comments
     ( post_id,name, email, website,content)
     VALUES (".$_POST['postid'].",'".$_POST['name']."', '".$_POST['email']."', '".$_POST['website']."',  '".$_POST['content']."')";

请在将用户输入放入数据库之前将其转义。并处理arraykeys:它的工作原理没有将它们设置为'',因为php将它们作为常量,无法找到此名称的已定义常量,并假设它必须是一个字符串。不必要的。

答案 5 :(得分:0)

请使用此。你忘了引号和溺爱。

$sSql = "INSERT INTO comments ( post_id,name, email, website,content) VALUES (".$_POST['postid'].",'".$_POST['name']."', '".$_POST['email']."', '".$_POST['website']."',  '".$_POST['content']."')";