2012-06-29 40 views
-2

我想制作一个表格,将数据插入到表中,但它不会正常工作;每次它都会回显:“列计数与第1行的值计数不匹配”。希望这里有人能说出我做错了什么。如何正确地将这些数据插入MySql表中?

我的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>'; 
?> 

编辑:好吧,真的没有想到过的第一篇文章,但现在我改变了一切它仍然不会工作..

+2

定义“但它不会正常工作”... – GDP

+0

你能解释它是如何不工作? – DrinkJavaCodeJava

回答

0

插入查询中的列名称与表模式不匹配。您应该看到die()上的列错误。

1

检查查询

mysql_query("INSERT INTO products (naam, beschrijving, prijs) VALUES 
('$_POST[naam]','$_POST[beschrijving]','$_POST[prijs]', NOW())") or die (mysql_error()); 

你逝去的4参数为3个变量....他们必须是相同的

+0

列名称如何?它们与表格架构不同吗? – SachinGutte

1

设置你的表单动作为当前的PHP文件,也可以离开它不操作属性。 (不要设置action = ""它违反HTML5规范。)

也在您的SQL语句INSERT INTO products (naam, beschrijving, prijs) VALUES ('$_POST[naam]','$_POST[beschrijving]','$_POST[prijs]', NOW())中,列出了3个字段和4个输入。让字段数与数字输入相匹配是很好的做法。

最后,确保您的输入语句字段名称与MySQL表中的表定义匹配。 “名称”不等于“naam”。

相关问题