【问题标题】:PhpStorm unable to structural replacePhpStorm 无法进行结构替换
【发布时间】:2018-04-30 12:16:43
【问题描述】:

如何用 PhpStorm 进行结构替换?

我正在尝试使用新的 mysqli 类更新过时的 mysql_ 函数。

我的搜索模板:

$row$ = mysql_fetch_array($query$)

我的替换模板:

$row$ = $query$->fetch_array()

还给我

错误“不支持的替换模式..”

将我的搜索模板更改为

$row$ = mysql_fetch_array($query$)) 

奇怪地解决了这个问题。给我这个

No template '$dates$ = mysql_fetch_array($quere$))' found in All Places

谁能解释一下我做错了什么?

【问题讨论】:

  • @Xorifelse 似乎这个问题实际上是为了用 mysqli 库调用替换 mysql_ 调用(我会推荐 PDO,但 afaik mysqli 不会很快被弃用)。
  • @Jeto 傻我,你是对的。问题是我将不回答与mysql_ 相关的任何问题作为一项政策,当我看到那行代码时,我没有阅读剩下的问题:o
  • 虽然@Jeto 纠正了我,但我没想到修复“遗留”代码时会出现“自动化”。 你不应该这样做。这样做没有意义,因为注入的漏洞直接从mysql 复制到mysqli 库。这样做没有意义,如果您懒得实际编码,请坚持使用 PHP 6。

标签: php intellij-idea phpstorm structural-search


【解决方案1】:

您没有在语句末尾添加分号。

事实上,结构搜索和替换在 PhpStorm 中已被破坏多年,但现在有很多工作正在解决这个问题,而您的特定案例在 2018.1.2 中运行良好:http://recordit.co/pQubl3VSGd

【讨论】:

    【解决方案2】:

    我建议简单地使用正则表达式搜索和替换:

    搜索

    mysql_fetch_array\((\$\w+?)\)
    

    替换:

    $1->fetch_array()
    

    【讨论】:

      猜你喜欢
      • 2019-07-06
      • 2019-07-16
      • 2016-12-04
      • 1970-01-01
      • 1970-01-01
      • 2010-10-22
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多