Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Удаление атрибута style из записей базы данных

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Telnet
Отправлено: 30 Октября, 2013 - 14:23:19
Post Id


Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Май 2011  


Помог: 1 раз(а)




Нужно по удалять все атрибуты style из таблицы с контентом
Сами атрибуты удаляются, но потом при попытке обратной записи в базу получаю ошибки обновления той же строки
вот код сейчас все станет ясно
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. ini_set("max_execution_time", "864000");
  4. require_once('configuration.php' );
  5. $config = new JConfig();
  6.  
  7. $dblink = mysql_connect($config->host, $config->user, $config->password) or die ('not connect');
  8. $db = mysql_select_db($config->db, $dblink);
  9. mysql_query("SET NAMES utf8", $dblink);
  10.  
  11. $res = mysql_query('SELECT * FROM `rfn_content`', $dblink);
  12. while ( $row = mysql_fetch_assoc($res)) {
  13.         $html = $row['fulltext'];
  14.  
  15. echo '<br/>До<br/>'.$html;
  16.         $pattern = '/style="[^"]*"/si';
  17.    $html = preg_replace($pattern,'',$html);
  18. echo '<br/>После<br/>'.$html;
  19. //die();
  20.     $result = mysql_query('UPDATE `rfn_content` SET `fulltext`='.mysql_escape_string($html).' WHERE `id`="'.$row['id'].'"', $dblink)
  21.         or die(mysql_error());
  22.  
  23. }
  24. ?>
  25.  

Мне нужно под CMS джумалу, но он отлично подойдет и для удаления любых не нужных кусков из записей любой другой таблицы, раньше я не однократно его использовал все нормально работало

Ошибки получаю следующие
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'justify">В заседании принял участие заместител�' at line 1

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\r\n
Выборочным порядком в восемнадцати учр' at line 1

Я нутром чую что тут дело в экранировании
поэтому там и написал
mysql_escape_string($html)
но не помогло

Да забыл добавить таблица где я пытаюсь удалить атрибут style имеет
collation utf8_general_ci

(Отредактировано автором: 30 Октября, 2013 - 14:27:59)

 
 Top
teddy
Отправлено: 30 Октября, 2013 - 14:34:25
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("UPDATE `rfn_content` SET `fulltext`='$html' WHERE `id`='$row[id]'", $dblink)

а mysql_real_escape_string($html) сделай до запроса и в запрос уже подставляй отфильтрованную переменную

(Отредактировано автором: 30 Октября, 2013 - 14:47:41)

 
 Top
Telnet
Отправлено: 30 Октября, 2013 - 14:34:30
Post Id


Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Май 2011  


Помог: 1 раз(а)




Получил сам запрос на котором вызывается ошибка

CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE `rfn_content` SET `fulltext`=\r\n<p>Выборочным порядком в восемнадцати учреждениях и войсковых частях проведена инвентаризация, в результате которой выявлена недостача материальных ценностей на сумму 744,7 млн. руб. (в том числе единиц крупной боевой техники, уничтоженной в ходе учебных и боевых действий) и излишки на сумму 180,8 млн. рублей.</p>\r\n<p>В результате проведения контрольных мероприятий выявлено значительное количество материальных ресурсов стоимостью 2 517,8 млн. руб., приобретенных за счет средств федерального бюджета, не востребованных и не эксплуатируемых на протяжении длительного периода (до двадцати лет).</p>\r\n<p>Так, земельные участки кадастровой стоимостью свыше 4,5 млрд. рублей, находящиеся в постоянном (бессрочном) пользовании ряда войсковых частей,<br />не отражены в бюджетном учете при наличии документальных оснований.</p>\r\n<p>В ходе проведения проверок материально-ответственными лицами возмещена часть суммы недостачи; излишки материальных ценностей и земельные участки оприходованы по учету.</p>\r\n<p>В адрес всех учреждений, подвергшихся проверке, направлены представления о ненадлежащем исполнении бюджета и предписания по устранению выявленных нарушений.</p>\r\n<p>Материалы контрольных мероприятий переданы в военную прокуратуру Южного военного округа (г. Ростов-на-Дону).</p> WHERE `id`="1"
  2. You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near '\r\n
  3. Выборочным порядком в восемнадцати учр' at line 1
 
 Top
DelphinPRO
Отправлено: 30 Октября, 2013 - 14:37:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Telnet
текстовые значения в запросах заключаются в кавычки.
Если не понимаешь - то сначала сформируй запрос в переменную, и выведи эту переменную на экран. Увидишь готовый запрос, каким он идет в БД. Скопируй в текстовый редактор с подсветкой синтаксиса SQL и увидишь косяк.
(Добавление)
Казалось бы - причём здесь атрибут style? Голливудская улыбка


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Telnet
Отправлено: 30 Октября, 2013 - 16:47:53
Post Id


Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Май 2011  


Помог: 1 раз(а)




PHP:
скопировать код в буфер обмена
  1. $query = "UPDATE `rfn_content` SET `fulltext`='".mysql_escape_string($html)."' WHERE `id`=".$row['id'];


Исправил на так вроде заработало
(Добавление)
DelphinPRO
Спасибо у меня иногда бывают заскоки
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB