Как перезаписать значений в базе данных
Страницы: 1
Как перезаписать значений в базе данных
Подскажите правильный ли скрипт ниже для перезаписи доп. полей в базе данных на движке DLE. Задача такая,чтобы при помощи скрипта можно было перезаписать в доп.полях значения. есть три доп.поля - это title, total-phones, price и в них нужно у каждой новости перезаписать значения. в данный момент скрипт не работает, подскажите, что не так.

---------------------------------------------------------



Код
<?php

$dbhost = "localhost"; // Хост
$dbuser = "*****"; // Пользователь баз данных
$dbpassword = "*****"; // Пароль
$dbname = "*****"; // Имя баз данных

// Подключение к базе
$db = new mysqli($dbhost, $dbuser, $dbpassword, $dbname);

// Проверка подключения с баз данных
if ($db->connect_errno) {
  echo '<p>Не удалось подключиться к базе данных!</p>';
  echo $db->connect_error;
  exit;
}

$db->set_charset('utf8');

$_POST['id']    = $db->real_escape_string($_POST['id']);
$_POST['title']    = $db->real_escape_string($_POST['title']);
$_POST['price'] = $db->real_escape_string($_POST['price']);
$_POST['total-phones'] = $db->real_escape_string($_POST['total-phones']);


$title = $db->query("UPDATE dle_post  SET xfields='{$_POST['total-phones']}' WHERE id='{$_POST['id']}'");
$price = $db->query("UPDATE dle_post  SET xfields='{$_POST['price']}' WHERE id='{$_POST['id']}'");
$phones = $db->query("UPDATE dle_post  SET xfields='{$_POST['total-phones']}' WHERE id='{$_POST['id']}'");
ты этим скриптом потрешь все остальные допполя у новости. в dle колонка xfields хранит данные не раздельно, а одной строкой через разделитель || (типа price|100||phone|123). твой update тупо сносит всё содержимое ячейки и записывает туда только телефон.

чтобы работало через sql, алгоритм другой:
1. достать текущую строку (select xfields from...).
2. разобрать её в массив (explode по ||, потом по |).
3. найти нужный ключ, заменить значение.
4. собрать строку обратно и только тогда обновлять.

а вообще писать сырой mysqli код для cms — это дичь. у dle есть встроенный класс $db и api для работы с новостями, юзай их методы. они сами умеют парсить xfields и экранировать данные, не надо изобретать велосипед с дырами в безопасности.
Страницы: 1
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)
Новые темыОбъявленияСвободное общение
00:45 С чего сейчас проще начать? 
00:22 Раскрутка форума 
00:17 Бесплатное получение бэклинков 
00:16 Бесплатное расширение для Chrome — проверка ссылок прямо на странице 
00:05 Гугл запустил Первый АПдейт года и серп уже трясёт - Google March 2026 Core Update 
23:48 Яндекс Нейро и выдача в 2026 - остались ли лазейки для маленьких сайтов? 
08:21 Продвижение-2022: Гугл все? Нет – Гугл не все! 
00:22 BITzaBIT.com - обмен криптовалют, выплаты EUR, CAD, GBP, AZN, TJS, UZS 
00:13 SpeedyIndex - ускорение индексирования ссылок в Google. 100 ссылок в подарок. 
23:39 Продам сайт Домен РУ RU РФ c доменом www.доменру.рф 
18:46 Прямой поставщик услуг для MAX 
17:52 Mixmasters - Exchange without AML and KYC 
16:47 Продам домен translated.ru 
16:11 TUNNEL-to-PROXY: превращает тысячи публичных сетевых конфигураций - в стабильные SOCKS5-прокси! 
00:10 8 марта: желаю аптайма 99.9% и e-e-a-t без локов 
23:59 Почему не обновляется счетчик ИКС (индекса качества сайта) 
21:20 Точные прогнозы на футбол 
19:38 Голландцы влепили Grok по яйцам - теперь нельзя раздевать реальных людей, штраф 100к евро в день 
14:56 молодильные яблоки и живая вода 
06:50 Ставки на супер тренды в спорте 
13:04 Gartner обещал смерть SEO к 2026 году. Открываем метрику и проверяем