Php 使用关系标识符将变量插入到单独的表中
我需要一些方法学方面的帮助 我有3个Php 使用关系标识符将变量插入到单独的表中,php,sql-server,Php,Sql Server,我需要一些方法学方面的帮助 我有3个文本输入,格式为“添加任务”: <form action="page.php" method="POST"> <input type="text" name="task_string" value="" /> <input type="text" name="hours" value="" /> <input type="text" name="minutes" value="" />
文本
输入,格式为“添加任务”
:
<form action="page.php" method="POST">
<input type="text" name="task_string" value="" />
<input type="text" name="hours" value="" />
<input type="text" name="minutes" value="" />
<input type="submit" value="Add Task" />
</form>
现在我需要将分钟数
和小时数
值输入时间表
中,但我需要参考上述任务。id
//timelines
+----+-------+---------+-----------------------------+
| id | hours | minutes | task_id |
+----+-------+---------+-----------------------------+
| 1 | 3 | 29 | // task_id from table above |
+----+-------+---------+-----------------------------+
如何在多用户环境中使用SQL Server和PHP实现这一点?您可以使用它;下面是一个例子。但对于多用户环境,必须使用事务块
,以确保两个插入都成功
create procedure doDML(@task_string varchar(100),@hours int, @minutes int)
as
begin
declare @lastID int;
insert into tasks values(@task_string);
set @lastID = @@IDENTITY;
insert into timelines values(@hours, @minutes, @lastID);
end
您应该使用范围\标识而不是@标识@BogdanSahlean,感谢您指出该链接,但在这种情况下,使用@IDENTITY并没有什么害处,因为您是在同一过程中使用它的。你可以试试看,它肯定会起作用。@BogdanSahlean,我听说
scope\u identity()
被破坏了,应该改用output子句
。@proPhet:scope\u identity在使用时可能会产生错误的结果。但INSERT的情况并非如此。。。值(…)。
该错误会影响作用域标识()以及。@@IDENTITY(根据Microsoft支持链接)。
create procedure doDML(@task_string varchar(100),@hours int, @minutes int)
as
begin
declare @lastID int;
insert into tasks values(@task_string);
set @lastID = @@IDENTITY;
insert into timelines values(@hours, @minutes, @lastID);
end