Страница 1 из 1
Пробел в таблице Mysql
Добавлено: 17 янв 2020, 21:34
proxxs
Всем привет!
Не то, чтобы сильно принципиально, но хотелось бы понять..
Есть контекст с 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?
Re: Пробел в таблице Mysql
Добавлено: 17 янв 2020, 22:25
proxxs
+-----+-------------+
| num | status |
+-----+-------------+
| 444 | (тут пробел)ANSWER |
| 555 | ANSWER |
+-----+-------------+
Re: Пробел в таблице Mysql
Добавлено: 17 янв 2020, 23:24
ded
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)
Re: Пробел в таблице Mysql
Добавлено: 17 янв 2020, 23:46
proxxs
Пробовал убрать второй параметр и даже обернул переменную в скобки для наглядности.
#!/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 почитаю, спасибо.
Re: Пробел в таблице Mysql
Добавлено: 17 янв 2020, 23:52
proxxs
ded, спасибо за подсказку! Убрал пробелы из диалплана
exten => h,1,AGI(Script,${DIALSTATUS},${CALLERID(dnid)})
теперь все в порядке!