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

11 января 2019 в 18:04
Аватар пользователя lynix lynix 0 6 Решено

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

Комментарии

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

11 января 2019 в 21:43
<?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);
?>
12 января 2019 в 0:09

Вопрос решен.
Сначала делаем выборку текста.
Затем замена части текста функцией 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();
?>

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

12 января 2019 в 7:51