IF语句从php评估位

时间:2013-08-23 19:12:25

标签: php sql sql-server sql-server-2008 bit

我有一个表单发布到脚本。有时,名为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值正被传递给存储过程。

我评估错误了吗?

1 个答案:

答案 0 :(得分: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