Печать

HASH создает ассоциативный массив, например:

func_odbc.conf:
[Foo]
DSN=MySQL
readsql=SELECT * FROM Foo WHERE somefield = '${SQL_ESC(${ARG1})}'


extensions.conf:

Set(HASH(Foo)=${ODBC_FOO(${bar})})


Теперь можно ссылаться на ${HASH(Foo,somefield)} или ${HASH(Foo,someotherfield)}.
Вы даже можете добавить новые значения вот так
Set(HASH(foo,notinthetable)=baz).

В основном, это способ получения нескольких значений из базы данных без
использованием Array(). Можно перечислить каждое поле, но и при этом не создавая в пространстве имен множество ненужных переменных, которые могут привести к неожиданному поведению, например, когда появляется поле таблицы базы данных, имя которого совпадает
с существующей переменной.

Короче говоря, это способ быть в использовать "SELECT *" запрос, причем когда кто-то добавит столбцы к таблице и порядок полей изменится, то функция все равно будет работать.

Источник:http://lists.digium.com/pipermail/asterisk-users/2008-September/218390.html

Created by Switch002. Last Modification: Вторник 13 / Сентябрь, 2011 21:54:26 MSD by Switch002.

Меню

ads

Пользователи онлайн

94 народу онлайн

Поиск в Google

Google

voip-info