-1

完全被难住了。如问题标题中所述,出现错误,不知道为什么。我所有的列都有文本名称,据我所知,在我的代码中没有对名为“1”的列的引用。我已经有人稍微修改了这个来帮助我,所以也许这里有一个我不知道的问题。

(string)$insert;
if(is_array($_POST['Year'])){
    foreach($_POST['Year'] as $k=>$v){  
         $insert .= "($_POST['Name'][$k], $_POST['Short'][$k], $_POST['Med'][$k], $_POST['Long'][$k], $_POST['VLong'][$k], $_POST['Extreme'][$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['Short'], $_POST['Med'], $_POST['Long'], $_POST['VLong'], $_POST['Extreme'], $_POST['LJump'], $_POST['HJump'], $_POST['Shotputt'], $_POST['Discuss'], $_POST['Javelin'], $_POST['Date'], $_POST['Year'])"; 
}
$sql="INSERT INTO results_main 
(`Name`, `Short`, `Med`, `Long`, `VLong`, `Extreme`, `LJump`, `HJump`, `Shotputt`, `Discuss`, `Javelin`, `Date`, `Year`)
VALUES 
".$insert;

$result = mysql_query($sql) or die(mysql_error());

// close connection 
mysql_close($conn);
4

1 回答 1

1

原因是因为你用反引号包装了这些值。如果值是字符串文字,则应该用单引号括起来。MySQL 将您的值视为列,因为它们周围有反引号。反引号用于标识符而不是字符串文字。所以粗略的例子看起来像这样,

INSERT INTO tableName (col1, col2, col3)
VALUES ('hello', 'world', 'stack')
于 2013-04-15T14:26:07.037 回答