完全难倒。获得问题标题中所述的错误,并且不知道为什么。所有我的coloumns都有文本名称,据我所知,在我的代码中没有引用名为“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);
答案 0 :(得分:1)
原因是因为你用反引号包装了值。如果值是字符串文字,则应使用单引号进行换行。 MySQL将您的值视为列,因为它们周围的反引号。反引号用于标识符而非字符串文字。因此,经过验证的例子看起来像这样,
INSERT INTO tableName (col1, col2, col3)
VALUES ('hello', 'world', 'stack')