【发布时间】:2017-05-08 00:57:00
【问题描述】:
我使用 HeidiSQL 编写我的 PHP/MySQL 查询。我想用下面的测试SQL
SELECT @summer := 0, wrapper.* FROM
(SELECT
bs_file.*,
@summer := IFNULL(@summer,0),
@summer := @summer+1 as summer
FROM bs_file
) as wrapper
WHERE wrapper.summer = 3
为了演示我的问题,它位于一个更复杂的查询中,这种情况实际上是有意义的。这条 SQL 基本上每行都会增加 @summer。
预期的行为是数据库返回我的bs_file 表的第 4 行以及一些额外的字段 (0,2,3)。
当我在 HeidiSQL 中执行此查询时,一切都按预期工作。
但是当我使用 PDO 时,我将一无所获。
$sql = "SELECT @summer := 0, wrap...";
$connection->prepare($sql);
$statement->execute();
$result = $statement->fetch(PDO::FETCH_ASSOC);
$result 返回 false
我尝试使用非准备语句,事务。我知道您可以更改连接属性,但我不知道要设置什么来接收我的结果。
我发现@summer 将被设置为0 每次获取一行。
【问题讨论】:
-
我在 PDO 准备好的语句中运行了您的确切查询,它工作正常;-/ 使用的代码:pastebin.com/UhgVx5jq
-
我最初使用 phalcon 模型,然后下到 pdo 层。也许我没有尝试过。
标签: php mysql sql sql-server pdo