从PHP调用时与从Mysql Shell调用时,Mysqli查询结果不同

时间:2019-01-10 06:36:38

标签: php mysql sql 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代码,但我在网上找不到任何描述此问题的信息。

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

谢谢。

1 个答案:

答案 0 :(得分:0)

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

我有:

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

我将其更改为:

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

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

谢谢。