Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PHP, Perl, Python Новый топик    Ответить
 Perl и PostgreSQL: Не проходит UPDATE  [new]
Zankoku
Member

Откуда:
Сообщений: 4
Доброго времени суток! Господа, второй день бьюсь ничего не выходит. Проблема такая:
Есть таблица в БД usersnames:
 login | 1stname | 2ndname  |     organization     |     division      | position 
-------+---------+----------+----------------------+-------------------+----------
test | Валенок | Николаев | Тестовая организация | Отдел обеспечения | Дворник
(1 строка)
Для изменения полей в таблице написал форму:
say start_form(-name=>'acc_settings', -method=>'POST',-action=>'acc_settings_execute.pl',-class=>'body_form'),
    h4("@results[2]"),
    p('Имя:'),
    textfield(-name=>"1stname",-placeholder=>'Ваше имя'),#-default=>"@results[0]"),
    p('Фамилия'),
    textfield(-name=>'2ndname',-placeholder=>'Ваша фамилия'),#-default=>"@results[1]"),
    p('Подразделение'),
    popup_menu(-name=>'divinorg',-values=>\@division),#-default=>"@division[0]"),
    p('Должность'),
    popup_menu(-name=>'posinorg',-values=>\@positions),#-default=>"@results[4]");
    submit(-name=>'Подтвердить'),
    end_form();


В скрипте acc_settings_execute.pl для обработки данных формы:


$dbh = DBI->connect("dbi:Pg:dbname=webtaskmgr;host='x.x.x.x';port=5432",'root','groot',
                {AutoCommit => 0, RaiseError => 1, PrintError => 0})
                     or die ("error! $DBI::errstr");
  $dbh->do('set client_encoding=\'UTF8\'');

  my $name=param('1stname');
  my $surname=param('2ndname');
  my $divisiontake=param('divinorg');
  my $positiontake=param('posinorg');

  my $sth = $dbh->prepare("UPDATE usersnames SET \"1stname\"='$name', \"2ndname\"='$surname', organization='Тестовая организация', division='$divisiontake', \"position\"='$positiontake' WHERE login='$login';");
  $sth->execute();
  if ($sth1->err) {
    print "Error!!!" . $sth->errstr;
  }
  $dbh->disconnect();


Так вот в результате выполнения скрипта ошибок нет, но и строка не обновлена.
Что делать? Куда копать?
Заранее спасибо
29 дек 18, 19:58    [21776612]     Ответить | Цитировать Сообщить модератору
 Re: Perl и PostgreSQL: Не проходит UPDATE  [new]
Cane Cat Fisher
Member

Откуда:
Сообщений: 1730
Zankoku
$sth->execute();
if ($sth1->err) {


Почему выполняем один sth, а ошибку ждем от другого?
11 янв 19, 12:54    [21782701]     Ответить | Цитировать Сообщить модератору
Все форумы / PHP, Perl, Python Ответить