【发布时间】:2018-06-21 11:14:09
【问题描述】:
我在我的数据库中创建了触发器。我需要将 PHP 变量传递给该触发器。
我尝试在 PhpMyAdmin 中执行类似的操作:
SET @myVariable = 123;
INSERT INTO table (foo) VALUES (bar);
Trigger 成功获取@myVariable - 所以我在 Nette 项目中尝试过,但没有成功。
首先,Prepared Statement 只能执行一个命令,所以我不能同时调用 SET 和 INSERT。
然后我发现变量应该对整个连接有效的信息,所以我在连接到数据库后尝试调用$database->query('SET @myVariable = 123');。然后我尝试插入。但同样,我没有成功。
有人知道如何传递 PHP 变量来触发吗?
【问题讨论】:
-
$database->query('SET @myVariable = 123');看起来像 Nette 框架查询函数,我将分析该查询函数以查看是否存在查询或执行限制,例如仅在字符串以 SELECT、INSERT、UPDATE 或 DELETE 开头时执行查询例如.... 通常这应该可以在原生 PHP 数据库查询函数调用中正常工作,例如mysqli_query("SET @myVariable = 123");或作为准备好的语句mysqli_prepare("SET @myVariable = 123") -
我认为变量设置成功,但是触发器看不到。