【问题标题】:Mysqli Query Result Different When Called from PHP than When Called from Mysql Shell从 PHP 调用与从 Mysql Shell 调用时,Mysqli 查询结果不同
【发布时间】:2019-01-10 06:36:38
【问题描述】:

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

我遇到了从计算机上的 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代码,但我在网上找不到任何描述这个问题的东西。

有人能指出正确的方向吗?

谢谢。

【问题讨论】:

    标签: php mysql sql mysqli


    【解决方案1】:

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

    我有:

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

    我改成:

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

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

    谢谢。

    【讨论】:

    • 好吧,如果没有社区的帮助,我无法到达那里,所以我觉得接受我自己的解决方案有点糟糕。
    • 我们对此表示赞赏,但对社区来说更重要的是接受有效的答案,以便下一个人更容易找到它们。当您获得足够多的代表时,您就可以投票选出对您有帮助的答案。
    猜你喜欢
    • 2015-10-31
    • 1970-01-01
    • 1970-01-01
    • 2013-09-02
    • 2015-02-09
    • 2020-02-13
    • 1970-01-01
    • 2014-12-30
    • 2017-03-16
    相关资源
    最近更新 更多