我正在使用PHP和MySQL(V5.1)的事件日历工作,其中admin将添加一个事件,然后为该事件提供一个出席列表也会被创建。我有三个表格:活动,出席和成员。到目前为止,我可以使用通过PHP表单输入的信息创建事件。我试图通过从刚刚创建的事件中插入事件ID来更新考勤表,以及从成员表中拉入成员列表(使用成员ID)。尽管如此,没有什么会被添加到参加表格。有人能让我知道我应该做什么不同吗?使用LAST_INSERT_ID()和另一个表中的行在PHP/MySQL中的两个插入
一些我使用表中的字段:
活动:EVENT_ID(主键,自动递增),名称,位置,日期
考勤:attendance_ID(主键,自动递增),EVENT_ID, member_ID,参加
成员:member_ID(主键,自动递增),姓名,电子邮件
enter code here
这里是代码:
mysql_query("SET AUTOCOMMIT=0");
mysql_query("START TRANSACTION");
$query1 = mysql_query("INSERT INTO events (name , location , date) VALUES ('".mysql_real_escape_string($name)."' , '".mysql_real_escape_string($location)."' , '".mysql_real_escape_string($date)."')");
$query2 = mysql_query("INSERT INTO attendance (event_ID , member_ID) SELECT LAST_INSERT_ID(), members.member_ID FROM members");
if ($query1 and $query2) {
mysql_query("COMMIT");
} else {
mysql_query("ROLLBACK");
}
谢谢大家。事实证明,我的代码不工作的原因实际上完全在文件的不同部分(只是一个提示,如果你要创建一个页面的副本来测试其他代码,总是记得更新你的表单动作。哎呀)。为了记录,所有的建议将按照预期填充表格,就像我的原始代码一样。 &DSJ建议使用MySQLi并锁定表格似乎是比我使用的更好的做法,所以我就这样做了。 – 2013-02-18 12:31:10