首页 > 解决方案 > 从 PHP 调用与从 Mysql Shell 调用时,Mysqli 查询结果不同

问题描述

我已经搜索过这个问题的答案,但在网上找不到任何东西。

当从计算机上的 mysql shell 运行时,我遇到了一个查询,它给出了正确的结果集,但在 PHP 脚本中从 mysqli 运行时,结果集不同。

查询是:

SELECT q.pos, q.event_ID, e.name FROM (SELECT @row_number:=CASE WHEN @event_ID=e_ID THEN @row_number+1 ELSE 1 END AS pos, @event_ID:=e_ID as event_ID, u_ID from event_queue ORDER BY e_ID, dateadded) AS q INNER JOIN event AS e ON q.event_ID = ID WHERE q.u_ID=11;

如果这是从 mysqli 调用的,那么我得到的位置值 (q.pos) 为 1,如果从 mysql shell 运行,那么我得到正确的值 4。我认为这是因为它在 mysql 代码中使用了一个变量,但我在网上找不到任何描述此问题的内容。

有人可以指出我正确的方向吗?

谢谢。

标签: phpmysqlsqlmysqli

解决方案


对我有用的解决方案只是从第一个 SQL 查询的末尾删除分号。

我有:

mysqli_query($dbcon,"SET @row_number=0;");

我将其更改为:

mysqli_query($dbcon,"SET @row_number=0");

它奏效了。我还需要在另一个 mysqli 查询中设置 @event_ID 变量。

谢谢。


推荐阅读