Php sql中的varchar和int语法
请帮我纠正一下语法,因为Php sql中的varchar和int语法,php,mysql,Php,Mysql,请帮我纠正一下语法,因为$leave\u type是varchar,$numberofleave是整数,我对你想做的事有点困惑。您是否正在尝试创建一个将自动执行以下查询的触发器 CREATE TRIGGER leave_trigger AFTER INSERT ON leaveapplication FOR EACH ROW IF employeemaster.empcode='".$empcode."' THEN UPDATE employeemaster SET '".$leave_
$leave\u type
是varchar
,$numberofleave
是整数
,我对你想做的事有点困惑。您是否正在尝试创建一个将自动执行以下查询的触发器
CREATE TRIGGER leave_trigger
AFTER INSERT ON leaveapplication
FOR EACH ROW
IF employeemaster.empcode='".$empcode."' THEN
UPDATE employeemaster SET '".$leave_type=$leave_type."'-$numberofleave //I am facing problem here
END IF;
那么我想你应该这样写触发器:
UPDATE
employeemaster
SET leave_type=leave_type-".$numberofleave."
where empcode='".$empcode."'
在触发器中,您不希望使用PHP中的任何特定变量。您希望将数据插入一个表(leaveApplication),然后让触发器使用该表中的数据更新employeemaster。如果硬编码触发器中的数据,则需要为employeemaster中的每一行数据创建一个触发器,否则触发器将无法按预期工作。您需要将字段名保存在不同的变量中
CREATE TRIGGER leave_trigger
AFTER INSERT ON leaveapplication
FOR EACH ROW
UPDATE employeemaster SET leave_type=leave_type-NEW.numberofleave where empCode=NEW.empCode
END;
@阿拉贡,你能试一试吗?不过,我在猜测一些列名,因此您可能希望适应您的实际名称。
UPDATE employeemaster SET '".$fieldName."=".$leave_type."'-$numberofleave