Нужно сделать запись в БД

Jerard

Client
Регистрация
11.04.2013
Сообщения
506
Благодарностей
225
Баллы
43
Есть шаблон, необходимо результат записывать в БД. Кто поможет с ней?
 

sidor800

Client
Регистрация
16.04.2013
Сообщения
123
Благодарностей
41
Баллы
28
Создать таблицу
CREATE TABLE bdslon
(
id int(11) NOT NULL PRIMARY KEY auto_increment,
url_slona text,
orig_img text,
name text,
cat_id text
);
Добавлять данные

INSERT INTO bdslon (id, url_slona, orig_img, name, cat_id) VALUES ('', '{-Variable.url_slona-}', '{-Variable.orig_img-}', '{-Variable.name-}', '{-Variable.cat_id-}')
 
  • Спасибо
Реакции: Jerard

Jerard

Client
Регистрация
11.04.2013
Сообщения
506
Благодарностей
225
Баллы
43
Подскажите еще момент. Как локнуть строку на время работы?
Беру SELECT'ом строку со статусом 0, проверяю, обновляю статус.
Но проблема что при нескольких потоках берет одну и ту же строку.
 

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Поищите по форуму, была тема с обсуждением данного вопроса. Не могу сейчас найти у себя в закладках.
 
  • Спасибо
Реакции: Jerard

Jerard

Client
Регистрация
11.04.2013
Сообщения
506
Благодарностей
225
Баллы
43
Полагаю что тема была - https://zennolab.com/discussion/threads/mysql-vzjat-unikalnuju-stroku-i-obnovit-tranzakcija.36704/#post-335529
Прочитал, мало что понял.
Если кому интересно, в итоге нашлось другое решение:
- Добавил колонку random
- 1ый запрос UPDATE задают random случайное значение и меняю статус с 0 на другое значение
- Далее уже SELECT'ом по random беру строку
В итоге удалось избежать повторного взятия строк.
 
Последнее редактирование:

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 763
Благодарностей
1 391
Баллы
113

inilim

Client
Регистрация
16.09.2017
Сообщения
446
Благодарностей
170
Баллы
43
Можно сделать шаблон который будет брать 10 записей, класть их куда нибудь, и по количеству проверять когда еще брать.
А шаблоны что будут работать в много потоке будут брать их из того места в который вы указали.
 

Jerard

Client
Регистрация
11.04.2013
Сообщения
506
Благодарностей
225
Баллы
43

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)