Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php sql中的varchar和int语法_Php_Mysql - Fatal编程技术网

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