Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Подскажите, пожалуйста, правильно ли составлен запрос?

Подскажите, пожалуйста, правильно ли составлен запрос?


     19.02.2020    Все вопросы » Общие вопросы по PHP    92

вопрос
Здравствуйте, подскажите, правильно ли составлен запрос на изменение значения доп. поля "test". Тип поля "Переключатель", по умолчанию выкл., по запросу значение переключает на "Да".

$db->query( "UPDATE " . PREFIX . "_post SET 'xfields'=REPLACE('xfields','test|0','test|1') WHERE id='{$post_id}'" );

Ответил: New-dev.ru


Для имен полей надо использовать обратные кавычки
$db->query( "UPDATE " . PREFIX . "_post SET `xfields` = REPLACE(`xfields`, 'test|0',' test|1') WHERE id = '{$post_id}'" );


или в вашем запросе вообще убрать их для поля xfields
$db->query( "UPDATE " . PREFIX . "_post SET xfields = REPLACE(xfields, 'test|0',' test|1') WHERE id = '{$post_id}'" );

5 комментариев

dj-avtosh
PHP-developer

dj-avtosh - 20 февраля 2020 09:31 -

NEW-DEV.RU лучше всего использовать, что бы явно указать что это поле, а не функция или что-то подобное.

ЯД: 41001679231462
Заказы в telegram: @web_lord_moon
В телегу писать сразу задачу и бюджет.

Mau
Юзер

Mau - 20 февраля 2020 13:49 -

Почему-то не придал этому значение, благодарю за замечание.

Mau
Юзер

Mau - 21 февраля 2020 15:51 -

Подскажите, пожалуйста, запрос работает, значение в базе меняет, но в редактировании новости чекбокс не переключается, из-за чего при повторном сохранении опять идет на 0. Почему так происходит?
$db->query( "UPDATE " . PREFIX . "_post SET `xfields` = REPLACE(`xfields`, 'test|0',' test|1') WHERE id = '{$post_id}'" );

dj-avtosh
PHP-developer

dj-avtosh - 21 февраля 2020 15:59 -

пробел лишний в последнем аргументе функции REPLACE.

ЯД: 41001679231462
Заказы в telegram: @web_lord_moon
В телегу писать сразу задачу и бюджет.

Mau
Юзер

Mau - 21 февраля 2020 19:29 -

Спасибо большое, вот ведь, пол дня просидел и в упор не замечал этого.))

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх