我正在尝试创建一个将数据插入表中的表单,但它无法正常工作;每当它回显时:“列数与第1行的值计数不匹配”。希望这里有人能说出我做错了什么。
我的SQL表:
CREATE TABLE IF NOT EXISTS `products` (
`serial` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) COLLATE latin1_general_ci NOT NULL,
`description` varchar(255) COLLATE latin1_general_ci NOT NULL,
`price` float NOT NULL,
`picture` varchar(80) COLLATE latin1_general_ci NOT NULL,
PRIMARY KEY (`serial`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=7 ;
我的表格:
<?php
include('config.php');
echo '<h1 style="font-size:20px;">Sieraad toevoegen</h1>';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (empty($_POST['naam']) || empty($_POST['prijs'])) {
echo '<span style="color:red"><b>Niet alle velden zijn ingevuld!</b></span>';
} else {
mysql_query("INSERT INTO products (name, description, picture, price) VALUES ('$_POST[naam]','$_POST[beschrijving]','$_POST[foto]', '$_POST[prijs]', NOW())") or die (mysql_error());
echo '<span style="color:green"><b>Het sieraad is succesvol toegevoegd!</b></span>';
}
}
echo '<form method="post" target="_self">';
echo '<input type="hidden" name="serial">';
echo 'Naam van sieraad:<br><input type="text" name="naam"><br>';
echo 'Beschrijving:<br><textarea type="text" maxlength="250" name="beschrijving" rows="6" cols="37"></textarea><br>';
/**echo '<input name="MAX_FILE_SIZE" value="102400" type="hidden">';**/
echo 'Foto:<br><input type="text" name="foto"><br>';
echo 'Prijs:<br><input type="text" name="prijs" maxlength:"7"><br>';
echo '<input type="submit" value="Toevoegen" onclick="this.value=\'Sieraad wordt verwerkt...\';"> <input type="reset" value="Wis velden">';
echo '</form>';
?>
编辑:好的,没有真正考虑过第一篇文章,但现在我改变了所有内容它仍然无效......
答案 0 :(得分:1)
检查您的查询
mysql_query("INSERT INTO products (naam, beschrijving, prijs) VALUES
('$_POST[naam]','$_POST[beschrijving]','$_POST[prijs]', NOW())") or die (mysql_error());
你传递3个变量的4个参数......它们必须是相同的
答案 1 :(得分:1)
将表单操作设置为当前的php文件,或者可以不使用action属性。 (不要将action = ""
设置为违反HTML5规范。)
同样在您的SQL语句INSERT INTO products (naam, beschrijving, prijs) VALUES ('$_POST[naam]','$_POST[beschrijving]','$_POST[prijs]', NOW())
中,您列出了3个字段和4个输入。最好使字段数与输入数字匹配。
最后,确保输入语句字段名称与MySQL表中的表定义匹配。 “名字”不等于“naam”。
答案 2 :(得分:0)
插入查询中的列名与表模式不匹配。您应该在die()上看到列错误。