PHP - MySQLi заменить на регулярное выражение / регулярное выражение / регулярное выражение - PullRequest
0 голосов
/ 08 октября 2011

Прошу прощения за это "Дайте мне Google для вас" - вопрос, но я не могу найти ответ.

Я хочу удалить специфические элементы из столбцов в моей базе данных. Поэтому я ищу для них следующий код: (работает нормально)

    $sql = "SELECT list_id, list_domains
            FROM list
            WHERE list_domains REGEXP '[\s]*[a-z-]*\.[a-z/\.\?=]*.#".$number."#'";
        $result = $db->prepare( $sql );
        $result->execute();
        $result->bind_result( $list_id, $list_domains );
        $result->store_result();

Теперь я хочу удалить / заменить найденные элементы внутри этих столбцов. Поэтому я использую следующий код:

 $sql = "UPDATE list
        SET list_domains = REPLACE(list_domains, '[\s]*[a-z-]*\.[a-z/\.\?=]*.#".$number."#', '')
        WHERE list_domains REGEXP '[\s]*[a-z-]*\.[a-z/\.\?=]*.#".$number."#'";
        $result = $db->prepare( $sql );
        $result->execute();
        $result->store_result();

Не работает. Я тоже пробовал

REPLACE(list_domains, REGEXP '[\s]*[a-z-]*\.[a-z/\.\?=]*.#".$number."#', '') 

или

REGEXP_REPLACE(list_domains, '[\s]*[a-z-]*\.[a-z/\.\?=]*.#".$number."#', '') 

но эти строки только выдают ошибки.

Как работает удаление / замена специфических регулярных выражений на MySQLi?

Спасибо за каждое предложение!

1 Ответ

1 голос
/ 08 октября 2011

REPLACE() не разрешает поиск по регулярным выражениям.

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_replace

Если вы хотите манипулировать строками с помощью регулярных выражений, SELECT строками, делайте манипуляции по-своемукод, затем введите оператор UPDATE для обновления значения, указав окончательное значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...