gpt4 book ai didi

php - 单个 CakePHP query() 调用中的多个 SQL 语句?

转载 作者:可可西里 更新时间:2023-11-01 08:48:41 29 4
gpt4 key购买 nike

我正在尝试执行一些复杂的 SQL,这需要我在一个语句中在 MySQL 中设置几个变量,然后在下一个语句中执行依赖于它们的查询。为此,我需要在单个 $Model->query() 调用中将这些命令发送到数据库。

双语句调用看起来与此类似,粘贴自 this tutorial :

set @num := 0, @type := '';

select type, variety, price,
@num := if(@type = type, @num + 1, 1) as row_number,
@type := type as dummy
from fruits force index(type)
group by type, price, variety
having row_number <= 2;

有趣的是,我找不到通过任何 CakePHP 模型方法(类似于 mysqli::multi_query )执行多个以分号分隔的 SQL 语句的方法。看起来 query() 方法只执行此多语句调用中的第一条语句。

如何在同一个调用中同时执行这两个操作?

最佳答案

查看 CakePHP API,当运行 _execute 函数时,它会在 ; 上爆炸并将每个查询作为单独的查询运行:

api.cakephp.org/2.4/source-class-DboSource.html#__execute

我刚刚对两个查询进行了测试,运行了查询函数,虽然它同时运行了两个查询,但它只返回第一个查询的数据。这就是您返回 0 行的原因(因为第一个查询是变量创建)。我确定这是 Cake 的默认设置,因为它不知道在多个查询的情况下返回什么。

关于php - 单个 CakePHP query() 调用中的多个 SQL 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20206754/

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