【问题标题】:Query with variable inside throws an error in Code Analysis查询内部变量会在代码分析中引发错误
【发布时间】:2020-11-27 10:45:23
【问题描述】:

变量$extra_query破坏了代码分析功能的逻辑并抛出错误:

 SELECT *, so.`Location` as so_loc
    FROM vw_dispatch
             left join sales_orders so on vw_dispatch.customerOrderNo = so.External_Document_No
             left join customer_data cd on so.Customer_ID = cd.no
    where 1 = 1
      and archived = 0
      and processed = 0 $extra_query
    order by vw_dispatch_id desc
    limit 0,200

我应该停止检查此类错误情况吗? 我应该使用其他方式来注入该变量吗?

【问题讨论】:

  • 供参考:在 PhpStorm 问题跟踪器上相同:youtrack.jetbrains.com/issue/WI-57194
  • 我想知道:如果您从查询中删除 1 = 1 and archived = 0 and processed = 0 部分并将其移动到实际的 $extra_query 内容中(所以整个 WHERE 逻辑都在那里)——它会更好吗?
  • 这一行and processed = 0 $extra_query 必须是什么意思?您希望在执行期间在变量中具有什么值?
  • @LazyOne 我试过了,它仍然显示错误:screencast.com/t/cSPocVrjSVDQ
  • @Akina 此变量的值将向查询添加更多可能的过滤器。它是 WHERE 逻辑的一部分。我的疑问是如何在 PHPStorm IDE 中集成这些查询,以便代码分析更好地理解这一点。

标签: mysql intellij-idea phpstorm


【解决方案1】:

@Akina 的回答是最能解决这个问题的。

尝试将第一个逻辑运算符从变量移动到查询 模式,如 ... 和处理 = 0 AND ($extra_query) .... 变量本身将包含 1=1 @additional_conditions。

akina_solution

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 2014-10-20
    • 2023-02-20
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    相关资源
    最近更新 更多