我已经在数据库中创建了触发器。我需要把php变量传递给那个触发器。
我尝试在phpmyadmin中执行类似的操作:
SET @myVariable = 123;
INSERT INTO table (foo) VALUES (bar);
触发器成功地获取了@myvariable—所以我在nette项目中尝试了它,但没有成功。
首先,prepared语句只能执行一个命令,所以我不能同时调用set和insert。
然后我找到了变量对整个连接都有效的信息,所以我尝试调用 $database->query('SET @myVariable = 123');
连接到数据库后。然后我试着插入。但我还是没有成功。
有人知道如何将php变量传递给触发器吗?
3条答案
按热度按时间cfh9epnr1#
出于某种原因,问题是当我使用带有字符串的变量时。当我给变量赋值时,一切正常。
lsmd5eda2#
对于set变量是合适的查询命令。从不串联字符串,始终添加带问号的参数(sql注入漏洞)
nzrxty8p3#
要将变量显式设置为特定值,请使用set语句。
同步:
设置@variable=value
前任:
设置变量的值将一直存在,直到您为其分配另一个值或会话结束。
所以可以使用select语句在触发器中获取变量。
同步:
选择@variable;
前任:
在触发器中