11

我有一堆代码需要从 PHP 转换mysql_*mysqli_*

在 Sublime Text 2 中,我可以轻松地进行查找mysql_并将其替换为mysqli_

我遇到的问题是:

mysql_query($query, $link_identifier)

相对

mysqli_query($link, $query)

更糟糕的是,$query 并不总是查询字符串的变量名。我可能有:

$q_test = "SELECT `lName` FROM `users` ORDER BY `lName`";
$rstest = mysql_query($q_test, $DB) or die(mysql_error($DB));

$q_tester = "SELECT `address` FROM `users_address` ORDER BY `id`";
$rstester = mysql_query($q_tester, $DB) or die(mysql_error($DB));

在同一页上。

有没有办法让我在 Sublime Text 2 中构造一个宏来将上述两个更改为:

$rstest = mysqli_query($DBi, $q_test) or die(mysqli_error($DBi));
$rstester = mysqli_query($DBi, $q_tester) or die(mysqli_error($DBi));

同时?我想我可以使用正则表达式来完成这个我只是不知道如何以及从哪里开始。

更新

所以,经过一番打猎后,我发现我可以搜索:

mysql_query\(\$(\w+), \$DB\)

并替换为

mysqli_query\(\$DBi\, \$$1)

转换 $rstest = mysql_query($q_test, $DB) or die(mysql_error($DB));

$rstest = mysqli_query($DBi, $q_test) or die(mysql_error($DB));对我来说但是...

原来你不能宏查找和替换。我有什么选择吗?

更新

所以看起来我可以使用插件Reg Replace来完成我想要的,即使我有更多的设置要做。

使用 Reg Replace,我可以将多个查找和替换操作链接在一起,并将它们绑定到击键,因此我基本上可以执行一系列查找和替换操作来获得我需要的内容:

  1. 查找并替换mysql_mysqli_
  2. 查找并替换$DB$DBi
  3. 查找并替换, $DBi) or die() or die(
  4. 查找并替换mysqli_query($mysqli_query($DBi, $

那些基本上得到

$rstest = mysql_query($q_test, $DB) or die(mysql_error($DB));

转换成

$rstest = mysqli_query($DBi, $q_test) or die(mysqli_error($DBi));

对我来说只需一次按键。这不是最佳的,但它确实有效。不过,我仍在寻找一个简单的、没有插件的解决方案。

更新以上内容适用于使用更新的 Reg Replace 插件的 Sublime Text 3

4

1 回答 1

8

由于 sublime 目前无法在宏中使用正则表达式记录查找和替换,因此我将使用Reg Replace和一系列链接的查找和替换命令来获取我正在寻找的内容。

于 2012-10-18T11:46:16.693 回答