2011-03-29 44 views
1

请注意我是初学者。帮助多个查询(PHP/MySQL)

我的情况是这样的:

我试图运行多个查询,关闭动态表的背面。所以这些数据将以两个不同的表格结尾。

我目前成功地存储到我的item_bank,它有一个auto_increment itemId。

然后,我想抓住最后一个查询刚刚创建的ItemId,并将其插入到我正在插入数组的下一个查询中。 (我希望你可以按照这个)

首先,我甚至有可能在单个页面上运行这样的多个查询吗?

以下是我在查询中的尝试。目前第一个查询有效,但是我无法获得从该查询生成的ItemId。

$ answers是一个数组。

// store item structure info into item_bank_tb 
$query = "INSERT INTO item_bank_tb (item_type, user_id, unit_id, question_text, item_desc, item_name) 
VALUES('$type','$creator','$unit','$text','$desc','$name')"; 
mysql_query($query) or die(mysql_error()); 

$itemid = mysql_insert_id(); 

//now store different answers 
$query = "INSERT INTO answers_tb (item_id, text_value)VALUES('$itemid',' . implode(',', $answers) . ')"; 
mysql_query($query) or die(mysql_error()); 

这是错误现在我得到:

+0

你有语法错误在最后一次查询。 – 2011-03-29 14:20:15

回答

0

编辑:

// store item structure info into item_bank_tb 
$query = "INSERT INTO item_bank_tb (item_type, user_id, unit_id, question_text, item_desc, item_name) 
VALUES('$type','$creator','$unit','$text','$desc','$name')"; 
mysql_query($query) or die(mysql_error()); 

$itemid = mysql_insert_id(); 

//now store different answers 
$answers = mysql_real_escape_string(implode(',', $answers)); 
$query = "INSERT INTO answers_tb (item_id, text_value) VALUES('$itemid','$answers')"; 
mysql_query($query) or die(mysql_error()); 
+0

这是我得到的错误'列计数不匹配第1行的值计数,我认为这是指的ID?这是一个自动增量主键,所以我不应该将其包含在查询中? :S – buymypies 2011-03-29 14:13:10

+0

它应该工作,如果它是主要/索引。检查你的表结构。哪一行是错误? – 2011-03-29 14:16:36

+0

@ webarto,它似乎不喜欢我的最后一个查询后,实施的变化。 – buymypies 2011-03-29 14:18:08

2

要获得通过的PHP/MySQL的自动递增字段生成的ID只使用“列数不为1的行匹配值计数” mysql_insert_id()功能。

0

看一看mysql_insert_id()

// store item structure info into item_bank_tb 
mysql_query($query); 
$itemid = mysql_insert_id(); 

// now store different answers 
+0

这是我得到的错误'列计数不匹配第1行的值计数,我认为这是指ID?这是一个自动增量主键,所以我不应该将其包含在查询中? :S – buymypies 2011-03-29 14:12:51

+0

“text_value”的字段值必须是字符串,而不是SQL值列表。如果您有多个答案,您需要循环并运行每个插入查询... – sglessard 2011-03-29 14:19:19

+0

您指的是数据库结构吗?即在此刻text_value = varchar(50)。 – buymypies 2011-03-29 14:22:37