ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Пробел в таблице Mysql

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Пробел в таблице Mysql

Сообщение proxxs » 17 янв 2020, 22:34

Всем привет!
Не то, чтобы сильно принципиально, но хотелось бы понять..
Есть контекст с exten => h,1,AGI(Script, ${DIALSTATUS}, ${CALLERID(dnid)})
Есть скрипт, который вносит в таблицу значение, которое присваивается с пробелом впереди.
mysql -u root -pPASSWORD -D database -e "UPDATE table SET status='$1' WHERE num=$2"
Пример. Номер 444 с пробелом - сюда внес значение скрипт, а 555 добавлял руками.
+-----+-------------+
| num | status |
+-----+-------------+
| 444 | ANSWER |
| 555 | ANSWER |
+-----+-------------+

Почему появляется пробел в status номера 444?
proxxs
 
Сообщений: 16
Зарегистрирован: 16 янв 2019, 21:49

Re: Пробел в таблице Mysql

Сообщение proxxs » 17 янв 2020, 23:25

+-----+-------------+
| num | status |
+-----+-------------+
| 444 | (тут пробел)ANSWER |
| 555 | ANSWER |
+-----+-------------+
proxxs
 
Сообщений: 16
Зарегистрирован: 16 янв 2019, 21:49

Re: Пробел в таблице Mysql

Сообщение ded » 18 янв 2020, 00:24

1) Посмотрите как выглядит соодержимое
Код: выделить все
exten => h,1,NoOp(--------------${CALLERID(dnid)}----------------)
exten => h,2,AGI(Script, ${DIALSTATUS}, ${CALLERID(dnid)})
Если там пробела нету, пробуйте передавать аргументы без пробелов
Код: выделить все
exten => h,1,NoOp(--------------${CALLERID(dnid)}----------------)
exten => h,2,AGI(Script,${DIALSTATUS},${CALLERID(dnid)})

2) Изучайте регулярные выражения, Reg exp
*CLI> core show function REGEX

-= Info about function 'REGEX' =-

[Synopsis]
Check string against a regular expression.

[Description]
Return '1' on regular expression match or '0' otherwise
Please note that the space following the double quotes separating the regex
from the data is optional and if present, is skipped. If a space is desired at
the beginning of the data, then put two spaces there; the second will not be
skipped.

[Syntax]
REGEX("regular expression" string)
ded
 
Сообщений: 15821
Зарегистрирован: 26 авг 2010, 19:00

Re: Пробел в таблице Mysql

Сообщение proxxs » 18 янв 2020, 00:46

Пробовал убрать второй параметр и даже обернул переменную в скобки для наглядности.
#!/bin/bash
mysql -u root -pPASSWORD -D database -B -e "UPDATE table SET status='($1)' WHERE num=$2;"
в скобках появляется пробел!!
+-----+-------+-----------+
| num | status |
+-----+-------+-----------+
| 555 | ( CANCEL) |
+-----+-------+-----------+
Но если задаю вместо переменной какой-то текст, то пробела нет. Вот так, например: status='CANCEL'

Пробовал передать значение переменной $1 из скрипта в какой-нибудь файл - пробела в файле нет.

ps Про REGEX почитаю, спасибо.
proxxs
 
Сообщений: 16
Зарегистрирован: 16 янв 2019, 21:49

Re: Пробел в таблице Mysql

Сообщение proxxs » 18 янв 2020, 00:52

ded, спасибо за подсказку! Убрал пробелы из диалплана
exten => h,1,AGI(Script,${DIALSTATUS},${CALLERID(dnid)})
теперь все в порядке!
proxxs
 
Сообщений: 16
Зарегистрирован: 16 янв 2019, 21:49


Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH