Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> данные из postgresql в openldap, данные из таблицы и добавить в ldap 
:(
    Опции темы
toni3d
Дата 8.7.2013, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 8.7.2013

Репутация: нет
Всего: нет



взять данные из таблицы Postgresql и добавить в LDAP

Код


#подключаемся к таблице user_accounts1
$query = "SELECT * FROM user_accounts1";

$sth = $dbh->prepare($query);
$rv = $sth->execute();
if (!defined $rv) {
  print "При выполнении запроса '$query' возникла ошибка: " . $dbh->errstr . "\n";
  exit(0);
}

while ($ref = $sth->fetchrow_hashref()) {
  ($name, $mail) = ($ref->{'login'}, $ref->{'email'});
  #print "$name\t$mail\n";
}


$ldap = Net::LDAP->new($server);
$mesg = $ldap->bind($binddn, password=>$passwd);
$result = $ldap->add("cn=$name,ou=addressbook,dc=mydomain,dc=com", 
                attr => [ 'cn' => $name,
                          'sn' => 'Smith',
                          'givenName' => $name,
                          'mail' => $mail,
                          'objectclass' => [ 'person', 'inetOrgPerson']
                        ]
           );
           
$ldap->unbind;
$sth->finish();
$dbh->disconnect();



в итоге добавляет одно значение и все
подскажите как правильно организовать цикл
PM MAIL   Вверх
arto
Дата 8.7.2013, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



читать и писать одновременно, а не сначала прочитать по одной строке, и записать последнюю в ldap.
PM MAIL ICQ   Вверх
toni3d
Дата 8.7.2013, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 8.7.2013

Репутация: нет
Всего: нет



Цитата(arto @ 8.7.2013,  15:11)
читать и писать одновременно, а не сначала прочитать по одной строке, и записать последнюю в ldap.

спасибо
самое интересное что я пробовал, но так как изучаю недолго не был уверен так надо

Код

while ($ref = $sth->fetchrow_hashref()) {
  ($name, $mail) = ($ref->{'login'}, $ref->{'email'});
  #print "$name\t$mail\n";
$result = $ldap->add("cn=$name,ou=addressbook,dc=mydomain,dc=com", 
                attr => [ 'cn' => $name,
                          'sn' => $name,
                          'givenName' => $name,
                          #'homePhone' => '555-2020',
                          'mail' => $mail,
                          'objectclass' => [ 'top','person', 'inetOrgPerson']
                       ]
           );
  }


работает через тестовое виндовое подключение, позже проверю на freebsd сервере
есть подозрение что будут траблы с кодировкой русских букв

Это сообщение отредактировал(а) toni3d - 8.7.2013, 16:52
PM MAIL   Вверх
noize
Дата 9.7.2013, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


5.18.2
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 10.7.2010
Где: СПб

Репутация: 3
Всего: 3



используйте прагмы

use strict;
use warnings;

иначе дров наломаете.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0696 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.