-1

I am receiving a PHP Error:

Parse Error received on unexpected T_ENCAPSED AND WHITESPACE. 

The line: ($insert .= "($POST...) is the one that is generates the error.

(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());
4

1 に答える 1

7

基本的な PHP 構文: 二重引用符で囲まれた文字列内で引用符で囲まれた配列キーを使用することはできません。

$x = "$array['key']";
             ^---^--- wrong

次のいずれかである必要があります。

$x = "{$array['key']}";
      ^--           ^--- note the braces
or
$x = "$array[key]";
             ^--^-- note lack of ' quotes

また、 SQL インジェクション攻撃を無防備に求めています。したがって、他のコーディングを行う前に、それについて学んでください。

于 2013-04-15T14:57:20.103 に答える