PHP语法错误

PHP语法错误,php,string,syntax-error,Php,String,Syntax Error,我一直在努力使下面的查询的语法正确,但它一直在生成语法错误 代码示例 $_SESSION['FN'] = "FirstName"; $_SESSION['LN'] = "LastName"; $_SESSION['Code'] = 1; $strSql = "INSERT INTO BookingInformation (FirstName,LastName,Code) VALUES("'.$_SESSION['FN'].'","'.$_SESSION['LN'].'",'.$_SESSION[

我一直在努力使下面的查询的语法正确,但它一直在生成语法错误

代码示例

$_SESSION['FN'] = "FirstName";
$_SESSION['LN'] = "LastName";
$_SESSION['Code'] = 1;
$strSql = "INSERT INTO BookingInformation (FirstName,LastName,Code) VALUES("'.$_SESSION['FN'].'","'.$_SESSION['LN'].'",'.$_SESSION['Code'].')";

我想存储字符串和整数值,但您引用的insert语句生成语法错误,如

VALUES("'
应该是

VALUES('"
试着这样做:

$strSql = "INSERT INTO BookingInformation (FirstName, LastName, Code) VALUES('" . $_SESSION['FN'] . "', '" . $_SESSION['LN']. "','" . $_SESSION['Code'] . "')";
此外,您的代码也可以使用。

问题在于“”在“”中。请尝试以下方法:

$strSql = "INSERT INTO BookingInformation (FirstName) VALUES ('".$_SESSION['FN']."', '".$_SESSION['LN']."', '".$_SESSION['Code']."')";
您还试图在一行中插入3个值,但不能像上面那样完成,应该是(伪代码):

或者在您的情况下:

$strSql = "INSERT INTO BookingInformation (FirstName, LastName, Code) VALUES ('".$_SESSION['FN']."', '".$_SESSION['LN']."', '".$_SESSION['Code']."')";
最后,您的代码似乎不安全,因为会话可能被篡改,最好使用准备好的查询或
mysql\u real\u escape\u string()
试试看

$strSql=“插入BookingInformation(FirstName,LastName,code)值(“$\u会话['FN']”,“$\u会话['LN']”,“$\u会话['code']”,“)”

这个句子很糟糕, 正确的形式是:

 /* i don't need this!!!
    $_SESSION['FN'] = "FirstName";
    $_SESSION['LN'] = "LastName";
    $_SESSION['Code'] = 1;
*/
    $strSql = "INSERT INTO BookingInformation (FirstName) VALUES("'.$_SESSION['FN'].'")";
o如果表BookingInformation的字段是,例如,FirstName、LastName和Code, 您可以插入:

$strSql = "INSERT INTO BookingInformation (FirstName,LastName,Code) VALUES("'.$_SESSION['FN'].'","'.$_SESSION['LN'].'",'.$_SESSION['Code'].')";
如果某些值为null,则可以执行以下操作:

$strSql = "INSERT INTO BookingInformation   VALUES("'.$_SESSION['FN'].'",'','')";

您在使用
$\u会话
变量做什么?您的代码易受sql注入攻击@piddl0r,它取决于变量值来自何处。会话变量通常在服务器端保存,并在客户端cookie中包含会话密钥。永远不要假设某些东西可以安全使用;-)错误:解析错误:语法错误,意外的T_-ENCAPSED_和_-WHITESPACE,在/hermes/web08/b978/pow.habtoortballcom/htdocs/alfarooqcentre.com/Bookings/test.php第7行代码字段为整数时应为T_字符串或T_变量或T_-NUM_字符串。“$会话['Code']。”是否仍需按原样编写查询,你可以不用双引号来使用它。一个非常重要的一点是你应该做输入验证。这一行代码假设您确信这些变量中没有任何令人讨厌的东西<代码>SQL注入
是一种非常常见的攻击方式。
$strSql = "INSERT INTO BookingInformation   VALUES("'.$_SESSION['FN'].'",'','')";