Список форумов Asterisk Forum Asterisk Forum
The Asterisk Open Source PBX - Russian Community
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ПравилаПравила   ГруппыГруппы   ИзбранноеИзбранное    LinksСсылки   РегистрацияРегистрация 
 RSSRSS   ПрофильПрофиль   Войти и проверить личные сообщения   ВходВход 

Помогите с SQL

 
Список форумов Asterisk Forum -> Asterisk IP PBX    вывод темы на печать
Предыдущая тема :: Следующая тема  
Автор Сообщение
anvista



Зарегистрирован:
21.12.2009
Сообщения: 54

Статус: Оффлайн 

СообщениеДобавлено: Вт Апр 12, 2016 15:28    Заголовок сообщения: Помогите с SQL

Доброго времени суток, уважаемые форумчане.
Помогите, пожалуйста, блондинке с sql-ем.
Хочет начальство оценку работы операторов в колл-центре. Нашла соответствующий топик ( http://asteriskforum.ru/viewtopic.php?p= ... 1%8B#75420 ), табличку отдельную создала по образу и подобию cdr (удалив все лишнее).
И все бы хорошо, только не хочет SQL переменные записывать в табличку. Ругается, что синтаксис кривой. Если вместо переменной поставить любую строку в кавычках, то пожалуйста, все в таблицу внесет, а как только переменная, так все.
Это пробный код при выборе циферки

[macro-press-5]
exten => s,1,Set(home=/var/lib/asterisk/sounds/custom)
exten => s,n,MYSQL(Connect connid localhost user pass asteriskcdrdb)
exten => s,n,MYSQL(Query resultid ${connid} INSERT INTO operator (dst,rating) VALUES (${CDR(dst)},5))
exten => 0,n,MYSQL(Disconnect ${connid})
exten => s,n,Playback(${home}/poka)
exten => s,n,Hangup
exten => s,n,MacroExit()

Verbosity is at least 3
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Executing [3222@from-trunk-sip-ses:1] Goto("SIP/avaya-000b7aca", "menu_rating,s,1") in new stack
-- Goto (menu_rating,s,1)
-- Executing [s@menu_rating:1] Set("SIP/avaya-000b7aca", "home=/var/lib/asterisk/sounds/custom") in new stack
-- Executing [s@menu_rating:2] Wait("SIP/avaya-000b7aca", "1") in new stack
-- Executing [s@menu_rating:3] Dial("SIP/avaya-000b7aca", "SIP/3037,,trg") in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Called SIP/3037
-- SIP/3037-000b7acb is ringing
-- SIP/3037-000b7acb answered SIP/avaya-000b7aca
-- Executing [s@menu_rating:4] BackGround("SIP/avaya-000b7aca", "/var/lib/asterisk/sounds/custom/welcom") in new stack
-- <SIP/avaya-000b7aca> Playing '/var/lib/asterisk/sounds/custom/welcom.slin' (language 'ru')
-- Executing [5@menu_rating:1] Goto("SIP/avaya-000b7aca", "macro-press-5,s,1") in new stack
-- Goto (macro-press-5,s,1)
-- Executing [s@macro-press-5:1] Set("SIP/avaya-000b7aca", "home=/var/lib/asterisk/sounds/custom") in new stack
-- Executing [s@macro-press-5:2] MYSQL("SIP/avaya-000b7aca", "Connect connid localhost user pass asteriskcdrdb") in new stack
-- Executing [s@macro-press-5:3] MYSQL("SIP/avaya-000b7aca", "Query resultid 22 INSERT INTO operator (dst,rating) VALUES (s,5)") in new stack
[Apr 12 17:19:03] WARNING[1740]: app_mysql.c:395 aMYSQL_query: aMYSQL_query: mysql_query failed. Error: Unknown column 's' in 'field list'
[Apr 12 17:19:03] WARNING[1740]: app_mysql.c:395 aMYSQL_query: aMYSQL_query: mysql_query failed. Error: Unknown column 's' in 'field list'
-- Auto fallthrough, channel 'SIP/avaya-000b7aca' status is 'ANSWER'

[macro-press-5]
....
exten => s,n,MYSQL(Query resultid ${connid} INSERT INTO operator (dst,rating) VALUES ('proba',5))
....

-- Executing [s@macro-press-5:3] MYSQL("SIP/avaya-000b7ace", "Query resultid 23 INSERT INTO operator (dst,rating) VALUES ('proba',5)") in new stack
-- Auto fallthrough, channel 'SIP/avaya-000b7ace' status is 'ANSWER'

mysql> select dst,rating from operator WHERE dst='proba';
+-------+--------+
| dst | rating |
+-------+--------+
| proba | 5 |
+-------+--------+
1 row in set (0.00 sec)

понимаю, что руки кривые, но батарея в выправлении не помогает =)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
awsswa



Зарегистрирован:
28.04.2012
Сообщения: 1642
Откуда: Russia, Пермь

Статус: Оффлайн 

СообщениеДобавлено: Вт Апр 12, 2016 16:58    Заголовок сообщения:

Внимательно на лог !!!
Query resultid 22 INSERT INTO operator (dst,rating) VALUES (s,5)")

а именно !!! вы внисите два значения s и 5
VALUES (s,5)

а почему не вноситься ? а потому что вы формат полей скорей всего задали - цифровой - а надо было буквенный VARCHAR
тогда даже при ваших кривых руках всё работало

и вы показали только сам сакрос - а не его вызов но и тут понятно
макрос вызывается - макро и аргумент
для вас macro(macro-press-5,${CDR(dst)})

а самом макросе аргумент имеет значение ${ARG1}
для вас - exten => s,n,MYSQL(Query resultid ${connid} INSERT INTO operator (dst,rating) VALUES (${ARG1},5))

смотрите пример - http://asteriskforum.ru/viewtopic.php?t=6716&start=25

PS вообще по уму надо отправлять два значения
и макрос приводить к виду - exten => s,n,MYSQL(Query resultid ${connid} INSERT INTO operator (dst,rating) VALUES (${ARG1},${ARG2}))

_________________
платный суппорт по мере возможностей
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Skype Name
virus_net



Зарегистрирован:
05.10.2014
Сообщения: 377
Откуда: Москва

Статус: Оффлайн 

СообщениеДобавлено: Ср Апр 13, 2016 05:55    Заголовок сообщения:

Синтаксис MySQL:
Код:
INSERT INTO `table` (`field1`,`field2`,`fieldX`) VALUES('value1','value2','valueX');

Названия таблиц и полей обрамляются символом `
Значения (если это не NULL и не функция mysql) обрамляются символом '

Код:
exten => s,n,MYSQL(Query resultid ${connid} INSERT INTO `operator` (`dst`,`rating`) VALUES ('${CDR(dst)}','5'))


P.S.
awsswa писал(а):
а потому что вы формат полей скорей всего задали - цифровой - а надо было буквенный VARCHAR

Если бы это было так, то тогда
anvista писал(а):
Код:
mysql> select dst,rating from operator WHERE dst='proba';
+-------+--------+
| dst | rating |
+-------+--------+
| proba | 5 |
+-------+--------+
1 row in set (0.00 sec)

Не возвращало бы такого результата Wink, а значит поле dst там точно не типа INT

_________________
mega-net.ru - IT аутсорсинг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Телефон
anvista



Зарегистрирован:
21.12.2009
Сообщения: 54

Статус: Оффлайн 

СообщениеДобавлено: Ср Апр 13, 2016 07:02    Заголовок сообщения:

virus_net, СПАСИБО огромное, помогло =))
Теперь осталось нужные переменные напихать и будет руководству счастье
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Список форумов Asterisk Forum -> Asterisk IP PBX Ответить на тему
Страница 1 из 1

Добавить в Избранное

 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
You cannot attach files in this forum
You cannot download files in this forum