1980, окончил дирижёрско-хоровой факультет ЛГК (класс профессора А. Е. Никлусова);
Два года параллельно занимался на факультативе оперно-симфонического дирижирования (класс Ю. Ю. Алиева);
1979–1982, хормейстер и концертмейстер хора студентов Ленинградского инженерно-строительного института (ныне — С.-Петербургский государственный архитектурно-строительный университет);
1981–1986, руководил Народным коллективом Симфоническим оркестром Выборгского ДК;
В последующие годы занимался с детскими хоровыми коллективами;
1993–1999, преподавал хоровое дирижирование на музыкальном факультете РГПУ им. А. И. Герцена;
c 2001 — концертмейстер музыкального отдела ДД(Ю)Т Московского района С.-Петербурга;
db_connect()
getRow(): SELECT id FROM addr where ip='3.237.4.45'; result: OK
getValue(): SELECT mode FROM addr where id='923028'; result: OK
User not logged in or cookies disabled
Addr_id: 923028; Addr_mode: 1
case ADDR_TESTING
getValue(): SELECT time FROM addr where id='923028'; result: OK
Cookies disabled
setValue(): UPDATE addr SET mode='2' WHERE id = 923028; result: OK
URI: /id413
Script: /names/index.php
Query: ID=413
Referer:
getRow(): SELECT `value` FROM `blob` WHERE `key` = 'vkCache' result: OK
lockVkCache(1): INSERT INTO `blob` (`key`, `value`) VALUES ('vkCache', '250000'); result: NOK
lockVkCache(1): Error executing query INSERT INTO `blob` (`key`, `value`) VALUES ('vkCache', '250000'); Duplicate entry 'vkCache' for key 'PRIMARY'
getRow(): SELECT userId FROM vkSources WHERE exclude=0 ORDER BY lastRead LIMIT 1; result: OK
Getting posts for user 4362473. vk.api method: wall.get
getRow(): SELECT `value` FROM `blob` WHERE `key` = 'vk' result: OK
Checking vk access token... Valid. Expires 2023-05-30 09:26:04
Got 10. cacheVkPost(): UPDATE vkSources SET lastRead=1685372896, state='no updates (10 old posts)', exclude=0 WHERE userId=4362473; result: OK
lockVkCache(): DELETE FROM `blob` WHERE `key` = 'vkCache'; result: OK
getQueryParam(): id=413
getRow(): SELECT * FROM person WHERE id=413 AND 0 >= person.rights; result: OK
getRow(): SELECT byear, ddate, dmonth, dyear FROM person WHERE id = 413; result: OK
getRow(): SELECT * FROM person WHERE id = 413 AND 0 >= rights; result: OK
getAcademInfo(): SELECT * FROM person2course WHERE person=413; result: OK
getRelatives4Person: SELECT id, lname, fname, mname, type FROM person, person2person WHERE id2=id AND id1=413 AND 0 >= rights order by start; result: OK
getActivities(): SELECT * FROM activity WHERE person_id = 413; result: OK
getRelatives4Person: SELECT id, lname, fname, mname, type FROM person, person2person WHERE id1=id AND id2=413 AND 0 >= rights order by lname, fname, mname; result: OK
getEvents4Person(): SELECT event.* FROM person2event, event WHERE person=413 AND event.id=person2event.event AND sdate >= '2023-5-29' GROUP BY event.id ORDER BY sdate ASC; result: OK
getEvents4Person(): SELECT event.* FROM person2event, event WHERE person=413 AND event.id=person2event.event AND sdate < '2023-5-29' GROUP BY event.id ORDER BY sdate DESC; result: OK
getMaterials4Person(): SELECT material_id FROM person2material WHERE person2material.id=413 ORDER BY type DESC; result: OK
getMaterials4Person(): SELECT * FROM material WHERE id IN (190); result: OK
getSources(): SELECT * FROM person2source WHERE id=413; result: OK
getRow(): SELECT * FROM link WHERE type <> 'a' AND id=75 result: OK
getRow(): SELECT * FROM link WHERE type <> 'p' AND id=75 result: OK
getThumbnails4Person(): SELECT id FROM foto2person WHERE foto2person.person_id = 413; result: OK
getThumbnails4Person(): SELECT * FROM foto WHERE id in (43, 464, 507, 508, 511, 8062, 9067, 12632) ORDER BY sdate, id; result: OK
getPeople(): SELECT person.id, lname, fname, mname, pre, name, post FROM foto2person, person WHERE foto2person.id = 43 AND foto2person.person_id=person.id AND 0 >= person.rights ORDER BY ord; result: OK
getPeople(): SELECT person.id, lname, fname, mname, pre, name, post FROM foto2person, person WHERE foto2person.id = 12632 AND foto2person.person_id=person.id AND 0 >= person.rights ORDER BY ord; result: OK
getPeople(): SELECT person.id, lname, fname, mname, pre, name, post FROM foto2person, person WHERE foto2person.id = 9067 AND foto2person.person_id=person.id AND 0 >= person.rights ORDER BY ord; result: OK
getPeople(): SELECT person.id, lname, fname, mname, pre, name, post FROM foto2person, person WHERE foto2person.id = 511 AND foto2person.person_id=person.id AND 0 >= person.rights ORDER BY ord; result: OK
getPeople(): SELECT person.id, lname, fname, mname, pre, name, post FROM foto2person, person WHERE foto2person.id = 464 AND foto2person.person_id=person.id AND 0 >= person.rights ORDER BY ord; result: OK
getPeople(): SELECT person.id, lname, fname, mname, pre, name, post FROM foto2person, person WHERE foto2person.id = 507 AND foto2person.person_id=person.id AND 0 >= person.rights ORDER BY ord; result: OK
getPeople(): SELECT person.id, lname, fname, mname, pre, name, post FROM foto2person, person WHERE foto2person.id = 508 AND foto2person.person_id=person.id AND 0 >= person.rights ORDER BY ord; result: OK
getPeople(): SELECT person.id, lname, fname, mname, pre, name, post FROM foto2person, person WHERE foto2person.id = 8062 AND foto2person.person_id=person.id AND 0 >= person.rights ORDER BY ord; result: OK
printContactInfo(): SELECT * FROM contacts4person WHERE id = 413 ORDER BY type; result: OK
getRow(): SELECT * FROM person WHERE id=413 AND 0 >= person.rights; result: OK
getRow(): SELECT id FROM uri where uri='/id413'; result: OK
getDateCounter(): SELECT COUNT(*) from user where creation_time > '1685286497'; result: OK