我有一个食谱表和成分表,两个表的主键都是自动增量,配方的主键是成分中的外键。我将数据从html发布到php.Note我的成分文本框是动态生成的,并成功将数据发布到php脚本。发布数据是正确的当我将此数据插入表我的查询工作正常但数据未添加到mysql表。我的代码和输出是
$sql = "insert into recipe (rec_id, Name, Overview,category, Time, Image) values ('', '$name','$overview','$category','$time','$TARGET_PATH')";
$result = mysql_query($sql) or die ("Could not insert data into DB: " . mysql_error());
$rec_id = mysql_insert_id();
和成分
$ingredient = $_POST['ingredient'];
$amount = $_POST['amount'];
$integer = 0;
while (count($ingredient)>$integer) {
if (($ingredient[$integer] <> "") && ($amount[$integer] <> "")){
$sql = "INSERT INTO `cafe`.`ingredients` (`ingredient_id`, `ingredient_name`, `ammount`, `rec_id`,)
VALUES ('', '".$ingredient[$integer]."', '".$amount[$integer]."', '$rec_id')";
mysql_query($sql);
echo $sql."
";
}
else{
echo "ingredient number ".($integer+1)." is missing values and cannot be inserted.";
}
$integer = ($integer + 1);
}
当我回答查询时,输出是
nsert into recipe (rec_id, Name, Overview,category, Time, Image) values ('', 'demo recipe','no overview','meal','10/12/10 : 13:02:33','http://www.localhost/cafe/pics/demo.gif')
INSERT INTO cafe
.ingredients
(ingredient_id
, ingredient_name
, ammount
, rec_id
,) VALUES ('', 'ingredient one', '3gm', '29')
INSERT INTO cafe
.ingredients
(ingredient_id
, ingredient_name
, ammount
, rec_id
,) VALUES ('', 'ingredient two', '3gm', '29')
INSERT INTO cafe
.ingredients
(ingredient_id
, ingredient_name
, ammount
, rec_id
,) VALUES ('', 'ingredient three', '3gm', '29')
但是当我看到mysql表或从成分中查看数据时,成分中没有数据。
答案 0 :(得分:2)
,
之后您还有rec_id
。
删除它,看起来像
INSERT INTO cafe.ingredients (ingredient_id, ingredient_name, ammount, rec_id) VALUES ('', 'ingredient one', '3gm', '29')
你会没事的
答案 1 :(得分:0)
您可能想要验证您是否正在使用BEGIN调用而不是在INSERT之后提交。您可以参考http://www.devarticles.com/c/a/MySQL/Using-Transactions-with-MySQL-4.0-and-PHP/
在那种情况下。
答案 2 :(得分:0)
您的代码中似乎存在语法错误:
if (($ingredient[$integer] "") && ($amount[$integer] ""))
^^ ^^
看起来你错过了一个比较运算符。
答案 3 :(得分:0)
当插入不会抛出异常并且不插入数据时,我认为有几个选项
1)你在某处使用事务并回滚它 2)你的选择查询是坏的,数据在那里,但你不要选择它
答案 4 :(得分:0)
从查询中删除cafe
$sql = "INSERT INTO ingredients (`ingredient_id`, `ingredient_name`, `ammount`, `rec_id`,)
VALUES ('', '".$ingredient[$integer]."', '".$amount[$integer]."', '$rec_id')";