如何将此数据正确插入MySql表?

时间:2012-06-29 19:27:07

标签: php mysql phpmyadmin

我正在尝试创建一个将数据插入表中的表单,但它无法正常工作;每当它回显时:“列数与第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>'; 
?>

编辑:好的,没有真正考虑过第一篇文章,但现在我改变了所有内容它仍然无效......

3 个答案:

答案 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()上看到列错误。