Высоков.ру

SQL-запрос для создания нового комментария

sql add comments

Когда у вас много сайтов, и надо как-то поддерживать «эффект присутствия» на сайтах-новичках, то можно опуститься даже до такой «низости», как комментирование самому своих же статей. Это касается сайтов, которые не имеет никакой ценности, но для создания видимости их посещения и интереса к ним посетителей нужно забить статьи хоть каким-то комментариями.

В общем, как бы я не заворачивал в первом абзаце этого поста, проблема заключается в том, что вручную комментировать – занятие малоувлекательное. Попробовал делать это с помощью SQL-запроса к базе данных WordPress и увидел, что это намного быстрее, хотя и не лишено некоторых недостатков.

Как создать комментарий с помощью SQL-запроса к базе данных

В принципе, комментарий в WordPress – это строка в базе данных, в таблице под названием wp_comments. Но у меня совершенно не хватает знаний в MySQl, поэтому запрос может выглядеть громозко или даже чудовищно. Но он работает, не считая одной проблемки, решения которой я пока не знаю.

SQL-запрос к базе данных WordPress для создания нового комментария выглядит примерно так:

INSERT INTO wp_comments SET comment_post_ID='НОМЕР', comment_author='ИМЯ', comment_author_email='EMAIL', comment_author_IP='202.56.100.67', comment_date='2014-11-29 14:51:00', comment_date_gmt='2014-11-29 14:51:00', comment_content='Спасибо! Интересно было прочитать.', comment_karma='0', comment_approved='1';

Указывал еще comment_ID=’max(comment_ID)+1′, но это ни к чему – база данных сама присваивает очередной ID новой строке таблицы с комментариями.

Что здесь что?

Вставляем (INSERT) в таблицу комментариев (INTO wp_comments) новые создаваемые ячейки (SET).

ИМЯ – любое имя комментатора, EMAIL – почта, остальное и так понятно.

Не понятно только НОМЕР. Здесь должен быть ID поста, к которому относится комментарий. Я пытался находить самый большой ID опубликованного поста, но SELECT у меня не срабатывал – что-то дела неправильно.

Поэтому приходится смотреть ID поста в таблице wp_posts или выводить его другим SQL-запросом:

SELECT max(ID) FROM wp_posts WHERE post_status='publish' AND post_type='post';

Если кто-то подскажет, как в comment_post_ID=’НОМЕР’ вместо НОМЕРА вставить автоматический вывод SELECT max(ID) FROM wp_posts WHERE post_status=’publish’ AND post_type=’post’, буду очень признателен!

P.S. Кстати, интересно, авторы плагина похожих записей nrelate Related Content собираются когда-нибудь исправлять кодировку, из-за которой после обновления WordPress до 4 версии стало показывать какую-то чушь над выводом картинок.

29-11-2014 22-49-33

Апдейт от 30 ноября 2014 г. соответственно можно использовать запрос для одного сайта.

Пишем несколько строк, в которых меняются только имена, IP-адреса, email и ID постов, к которым нужно вставить комментарии.

 

3 комментария к записи «SQL-запрос для создания нового комментария»
  1. Папаша:

    Как же это практически использовать…
    Наверное, есть какие программы для комментаов.
    Можно для своих сайтов без опаски использовать

  2. Ferrari:

    НЕвероятно!

  3. Классно!:

    Спасибо, интересно!
    Копирайтеры пишут?.. Как на «серьезных сайтах» =)

Комментировать