MySQL 查询在 PHP 中返回 0 行,在 phpmyadmin 中返回实际记录
Posted
技术标签:
【中文标题】MySQL 查询在 PHP 中返回 0 行,在 phpmyadmin 中返回实际记录【英文标题】:MySQL query returns 0 rows in PHP, actual records in phpmyadmin 【发布时间】:2016-01-05 22:09:24 【问题描述】:我正在尝试从表中获取行 - 要明确的特定行范围。我的查询看起来像这样(只是代码的一部分):
SET @i=0;
SELECT * FROM images WHERE (@i:=@i+1) BETWEEN 1 AND 10;
它的作用是获取行数并返回行数在给定范围内的行。当我在 phpmyadmin 中运行此查询时,我可以看到查询的结果(该范围内的实际行),但是查询的行数为 0。我很确定问题出在这部分
WHERE (@i:=@i+1)
我已经搜索过其他答案,但原因总是在 php 中,而不是查询本身。
【问题讨论】:
如果问题出在 mysql/phpmyadmin 中,为什么还要用 php 标记它呢? 您应该向我们展示如何从您的 php 代码中调用查询。您是否检查了上述查询是否在 php 中返回了任何错误? 【参考方案1】:当您使用 phpMyAdmin 时,每个查询都会打开一个新的数据库连接,并且用户变量不会在连接之间持续存在。在您加入的子查询中设置变量:
SELECT i.*
FROM images AS i
CROSS JOIN (SELECT @i := 0) AS x
WHERE (@i := @i + 1) BETWEEN 1 AND 10;
【讨论】:
就是这样!谢谢一百万! @barmar 好吧,i 变量仍然存在,因为我们在 phpMyAdmin 中得到 10 个结果;只是行计数不起作用。我尝试将 i 初始化为 5,结果中只有 5 行。 您是否在一个命令中发送了两个查询?也许它只是显示第一个查询的行数。SET
不返回任何内容,因此其行数为 0。以上是关于MySQL 查询在 PHP 中返回 0 行,在 phpmyadmin 中返回实际记录的主要内容,如果未能解决你的问题,请参考以下文章