我在数据库中创建了触发器。我需要将 PHP 变量传递给该触发器。
我尝试在 PhpMyAdmin 中执行类似的操作:
SET @myVariable = 123;
INSERT INTO table (foo) VALUES (bar);
触发器成功获取@myVariable - 所以我在Nette项目中尝试了它,但没有成功。
首先,Prepared Statement 只能执行一个命令,因此我无法同时调用 SET 和 INSERT。
然后我发现变量应该对整个连接有效,所以我尝试在连接到数据库后调用 $database->query('SET @myVariable = 123');
。然后我尝试插入。但我还是没有成功。
有人知道如何将 PHP 变量传递给触发器吗?
最佳答案
对于设置变量,适合使用 QUERY 命令。切勿连接字符串,始终添加带问号的参数(SQL注入(inject)漏洞)
$database->query('SET @myVariable = ?', 123);
$database->query('INSERT INTO table ?', ['foo' => bar]);
关于mysql - 将 PHP 变量传递给 MySQL 触发器#nette,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50967147/