Помогите сконвертировать sql запрос

Аватар пользователя lynix

Здравствуйте!
Порылся в интернете и ничего не нашел.
Небходимо часть текста заменить в ноде.
Есть sql запрос:
UPDATE field_data_body SET body_value = REPLACE( body_value, 'что меняем', 'на что меняем') WHERE entity_id ='288';
необходимо выполнить запрос в db_query() друпал 7

Тип материала:
Версия Drupal:
0 Thanks

Лучший ответ

Аватар пользователя lynix
lynix 1 неделя назад

Вопрос решен.
Сначала делаем выборку текста.
Затем замена части текста функцией str_replace
Далее обновляем БД, выглядит так:

<?php
$text = db_query('SELECT body_value FROM {field_data_body} WHERE entity_id = :id', array(':id' => 288)) ->fetchField();
$changetext = str_replace("что меняем", "на что меняем", "$text");

db_update('field_data_body')
->fields(array('body_value' => $changetext))
->condition('entity_id', 288)
->execute();
?>

Всем спасибо.

Комментарии

Аватар пользователя lynix
lynix 1 неделя назад

Нигде не увидел функции REPLACE

Аватар пользователя Orion76
Orion76 1 неделя назад

Вас не правильно поняли, наверное потому что Вы не правильно вопрос задали.
А именно, не обозначили явно, с чем у Вас проблема..

Аватар пользователя voviko
voviko 1 неделя назад
<?php
        db_update
('field_data_body')
            ->
fields(array('body_value' => 'xxx'))
            ->
condition('entity_id'288)
            ->
execute();

//Либо
        
$node node_load(288);
        
$node->body['und'][0]['value'] = 'xxx';
        
node_save($node);
?>
Аватар пользователя lynix
lynix 1 неделя назад

Вопрос решен.
Сначала делаем выборку текста.
Затем замена части текста функцией str_replace
Далее обновляем БД, выглядит так:

<?php
$text = db_query('SELECT body_value FROM {field_data_body} WHERE entity_id = :id', array(':id' => 288)) ->fetchField();
$changetext = str_replace("что меняем", "на что меняем", "$text");

db_update('field_data_body')
->fields(array('body_value' => $changetext))
->condition('entity_id', 288)
->execute();
?>

Всем спасибо.