2012-06-29 70 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」。

相關問題