gpt4 book ai didi

mysql - 为什么用分号连接多个 MySQL 查询对 Perl DBI 不起作用?

转载 作者:可可西里 更新时间:2023-11-01 07:59:28 25 4
gpt4 key购买 nike

我想使用 DBI 将值插入到两个单独的 MySQL 表中.我试图通过在它们之间插入 ; 将两个有效的 INSERT 查询合并为一个:

$dbh->do(q{
INSERT INTO `testA`(test) values('testvalue111');
INSERT INTO `testB`(test) values('testvalue222');
});

但我总是得到一个错误:

Syntactic error in "INSERT INTO `testB`(test) values('testvalue222 ..."

如果我将查询分成两个单独的 do 调用,它就可以工作。但是组合查询在 phpMyAdmin 中运行良好。为什么它在 Perl 中失败?

最佳答案

您需要在 connect 调用中设置一个选项以启用此功能。来自 the docs :

mysql_multi_statements
As of MySQL 4.1, support for multiple statements seperated by a semicolon (;) may be enabled by using this option. Enabling this option may cause problems if server-side prepared statements are also enabled.

默认情况下它是禁用的,并且应该保持未设置 - 这是 SQL 注入(inject)的一个重要途径(你应该阅读它,特别是如果你不使用绑定(bind))。

关于mysql - 为什么用分号连接多个 MySQL 查询对 Perl DBI 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13333230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com