0

我有一个发布到脚本的表格。有时表单上有一个名为 的值stat。这是我的处理方式:

$data['stat'] = isset($_POST['stat']) ? true : false;
echo "STAT VALUE: " . var_dump($data['stat']);

输出(我目前正在测试一个false响应:

bool(false) STAT VALUE:

我的相关 SQL 来评估这个值:

@stat               bit
-- Inserted some data
if @stat = 1
    DECLARE @NewConsultId int
    SELECT @NewConsultId = SCOPE_IDENTITY()
    EXEC insertFacilityDecision @NewConsultId, 'EMERGENCY REQUEST', NULL, 17

发生的事情是我的insertFacilityDecision存储过程总是被调用,即使false值被传递给存储过程。

我评估的有点不正确吗?

4

1 回答 1

1

您应该附上应该在条件下begin ... end执行的语句if

if @stat = 1
begin
    DECLARE @NewConsultId int
    SELECT @NewConsultId = SCOPE_IDENTITY()
    EXEC insertFacilityDecision @NewConsultId, 'EMERGENCY REQUEST', NULL, 17
end

begin end只能为单个命令省略,所以在你的情况下是:

if @stat = 1
    DECLARE @NewConsultId int -- this statement is under condition

-- two below are not
SELECT @NewConsultId = SCOPE_IDENTITY()
EXEC insertFacilityDecision @NewConsultId, 'EMERGENCY REQUEST', NULL, 17
于 2013-08-23T19:17:51.693 回答