Как перезаписать значений в базе данных
Страницы: 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)
Новые темыОбъявленияСвободное общение
07:09 Стоит ли заморачиваться с мейл ру ? 
21:29 продажа ссылок с ai-сеток в 26-м- тема рип или просто все молчат? 
15:04 Редирект на мобильных. Айболит и сканеры молчат 
14:57 как оплатить claude и gpt-5 из рф в 2026 чтобы не забанили через три дня 
14:36 Ворд Пресс (или его шаблон) перестал отображать <b> болд жирный 
14:31 Robots txt 
12:18 С чего сейчас проще начать? 
22:53 Mixmasters - Exchange without AML and KYC 
20:23 Nexulume.com Обменник без AML и KYC 
20:06 BIGPROXY.SHOP - Резидентные Ротационные Backconnect Proxy USA EUROPA MIX [Безлимитный трафик] 
16:13 EM24.biz - обмен валют 
15:22 Авито аккаунты ИП и физик 
14:45 Belurk — высокоскоростные анонимные прокси от 0,24 рублей 
14:22 Продажа аккаунтов HH.RU 
07:36 Точные прогнозы на футбол 
19:03 8 марта: желаю аптайма 99.9% и e-e-a-t без локов 
18:56 Компьютерная мышь 
18:54 молодильные яблоки и живая вода 
18:50 Панель Кнопки соцсетей 
18:41 Оцифровка старых физических фотографий 
17:05 Актуально для тех кто хочет заработать в интернете