PHP解析错误:"在意外的T_ENCAPSED和WHITESPACE上收到解析错误."

-1 php mysql whitespace parsing

我收到一个PHP错误:

Parse Error received on unexpected T_ENCAPSED AND WHITESPACE. 
Run Code Online (Sandbox Code Playgroud)

行:($insert .= "($POST...)是生成错误的行.

(string)$insert;
if(is_array($_POST['Year']))
{
    foreach($_POST['Year'] as $k=>$v)
    {
        //the following line returns the error
        $insert .= "($_POST['Name'][$k], $_POST['One'][$k], $_POST['Two'][$k], $_POST['Four'][$k], $_POST['Eight'][$k], $_POST['Fifteen'][$k], $_POST['LJump'][$k], $_POST['HJump'][$k], $_POST['Shotputt'][$k], $_POST['Discuss'][$k], $_POST['Javelin'][$k], $_POST['Date'][$k], $_POST['Year'][$k]),";
    }
    $insert = substr_replace($insert ,0,-1);
}
else
{
    $insert .= "($_POST['Name'], $_POST['One'], $_POST['Two'], $_POST['Four'], $_POST['Eight'], $_POST['Fifteen'], $_POST['LJump'], $_POST['HJump'], $_POST['Shotputt'], $_POST['Discuss'], $_POST['Javelin'], $_POST['Date'], $_POST['Year'])";
}

$sql="INSERT INTO results_main 
(Name, One, Two, Four, Eight, Fifteen, LJump, HJump, Shotputt, Discuss, Javelin, Date, Year)
VALUES 
".$insert;

$result = mysql_query($sql) or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)

Mar*_*c B 7

基本PHP语法:您不能在双引号字符串中使用带引号的数组键:

$x = "$array['key']";
             ^---^--- wrong
Run Code Online (Sandbox Code Playgroud)

它应该是:

$x = "{$array['key']}";
      ^--           ^--- note the braces
or
$x = "$array[key]";
             ^--^-- note lack of ' quotes
Run Code Online (Sandbox Code Playgroud)

你也是敞开心扉,并要求进行SQL注入攻击.因此,在进行任何其他编码之前,请先了解这一点.