У меня есть куча кода, который нужно переходить с PHP mysql_*
в mysqli_*
В Sublime Text 2 я легко могу найти find для 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));
в то же время? Я думаю, что могу использовать регулярное выражение для выполнения этого, я просто не знаю, как и с чего начать.
UPDATE
Итак, после небольшой охоты я обнаружил, что могу найти:
mysql_query\(\$(\w+), \$DB\)
и замените на
mysqli_query\(\$DBi\, \$$1)
который преобразует
$rstest = mysql_query($q_test, $DB) or die(mysql_error($DB));
to
$rstest = mysqli_query($DBi, $q_test) or die(mysql_error($DB));
для меня, но...
оказывается, что макрос не может найти и заменить. Есть ли у меня какие-либо опции?
UPDATE
Итак, похоже, что я могу использовать плагин Reg Replace, чтобы выполнить то, что я хочу, даже если у меня больше настроек.
Использование Reg Replace Я могу связать несколько действий поиска и замены и привязать их к нажатию клавиши, чтобы в принципе выполнить серию действий по поиску и замене, чтобы получить то, что мне нужно:
- Найти и заменить
mysql_
наmysqli_
- Найдите и замените
$DB
на$DBi
- Найти и заменить
, $DBi) or die(
на) or die(
- Найти и заменить
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));
для меня одним нажатием клавиши. Это не оптимально, но это делает трюк. Я все еще ищу простой, без плагинов решение.
UPDATE Вышеупомянутое работает с Sublime Text 3 с помощью обновленного плагина Reg Replace