mysql - 将 PHP 变量传递给 MySQL 触发器#nette

标签 mysql nette

我在数据库中创建了触发器。我需要将 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/

相关文章:

php - 无效的链接: Cannot load presenter 'Post' , class 'App\Presenters\PostPresenter' was not found

PHP(Nette框架)自动编码标准检查

php - Doctrine:如何根据与 Criteria 的关联按属性排序

java - 如何使用 JPA 将 Java 日期存储到 Mysql 日期时间

php - 循环$_POST

c# - 通过 PHPMyAdmin 创建的数据库与 C# 的 MySQL 连接

jquery - 在 summernote 中转义 HTML

mysql - Magento 高负载下抛出错误 : UNQ_SALES_FLAT_INVOICE_INCREMENT_ID

php - MySQL 行选择