The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Debian 9.6 - perl 5.24.1 - UNSIGNED ZEROFILL"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (Perl)
Изначальное сообщение [ Отслеживать ]

"Debian 9.6 - perl 5.24.1 - UNSIGNED ZEROFILL"  +/
Сообщение от medexpert (ok), 21-Дек-18, 10:42 
Здоровья Всем!
Столкнулся с проблемой второй раз:
1. На хостинге обновили perl - не смогли разобраться, попросил откатить (перенести на старый сервер).
2. На локальной машине умер диск с 8-кой. Поставил 9.6 и проблема возникла опять - теперь надо разбираться.

Поле MySQL два знака c UNSIGNED ZEROFILL.

Выводит:
site.com/catalog.pl?country=2

Должно быть:
site.com/catalog.pl?country=02

Сайт старый. "Никогда такого не было, и вот опять" :)
Может кто-то сталкивался? Какие мысли?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Debian 9.6 - perl 5.24.1 - UNSIGNED ZEROFILL"  +/
Сообщение от михалыч (ok), 21-Дек-18, 13:32 
>[оверквотинг удален]
> на старый сервер).
> 2. На локальной машине умер диск с 8-кой. Поставил 9.6 и проблема
> возникла опять - теперь надо разбираться.
> Поле MySQL два знака c UNSIGNED ZEROFILL.
> Выводит:
> site.com/catalog.pl?country=2
> Должно быть:
> site.com/catalog.pl?country=02
> Сайт старый. "Никогда такого не было, и вот опять" :)
> Может кто-то сталкивался? Какие мысли?

может это не perl виноват, а mysql?
как select происходит?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Debian 9.6 - perl 5.24.1 - UNSIGNED ZEROFILL"  +/
Сообщение от medexpert (ok), 21-Дек-18, 14:18 
>[оверквотинг удален]
>> возникла опять - теперь надо разбираться.
>> Поле MySQL два знака c UNSIGNED ZEROFILL.
>> Выводит:
>> site.com/catalog.pl?country=2
>> Должно быть:
>> site.com/catalog.pl?country=02
>> Сайт старый. "Никогда такого не было, и вот опять" :)
>> Может кто-то сталкивался? Какие мысли?
> может это не perl виноват, а mysql?
> как select происходит?

Код для регионов (максимально сократил) - проблема одна.


sub region {
my $return;
$text_quest = "
  SELECT region_id, $DATA{'LANGUAGE'}_region_name
  FROM address_region
  WHERE
  id_country = $country AND
  region_act > 0
  GROUP BY region_id
";
$sth = $dbh->prepare($text_quest);
$sth->execute();

if ($sth->err) {
  $return .= "Ошибка catalog_region_cat " . $sth->errstr;
}
    
$sth->bind_col( 1, \$region_id_tmp );
$sth->bind_col( 2, \$name_tmp );
    
while ( $sth->fetch ) {

# Костыль для решения, но таких мест много...
#     if ($region_id_tmp =~ /^\d$/) {
#        $region_id_tmp = '0' . $region_id_tmp;
#     }
    
  $return .= "<p><a title=\"$title_tmp\"   href=\"http://$DATA{'LANGUAGE'}.$DATA{'HOST_NAME'}/$_[1]?country=$country®ion=$region_id_tmp\"><span>$name_tmp</span></a></p>\n";

}
$sth->finish();
return $return;
}


Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Debian 9.6 - perl 5.24.1 - UNSIGNED ZEROFILL"  +/
Сообщение от Аноним (-), 21-Дек-18, 15:09 
country=$country®ion=$region_id_tmp

WTF ??


my $val = 2;
$val = sprintf("%02d", $val);
print $val;

sprintf уже не моден ?

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Debian 9.6 - perl 5.24.1 - UNSIGNED ZEROFILL"  +/
Сообщение от михалыч (ok), 21-Дек-18, 19:17 
действительно, что за фигня ??
присоединяюсь, но вежливо - WTF(lood) ))

если хочется использовать метод fetch()


    if ($sth->err) {
        $return .= "ERROR " . $sth->errstr;
    }
    else {
        while ( my $row = $sth->fetch() ) {
            $return .= "<p><a title=\"$row->[1]\" href=\"http://site/?country=$row->[0]\"><span>$row->[1]</span></a></p>\n";
        }
    }

    $sth->finish();
    return $return;


это, разумеется, чисто для примера
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Debian 9.6 - perl 5.24.1 - UNSIGNED ZEROFILL"  +/
Сообщение от ACCA (ok), 29-Дек-18, 00:12 
[...]
> $return .= "<p><a title=\"$row->[1]\" href=\"http://site/?country=$row->[0]\"><span>$row->[1]</span></a></p>\n";

Ты бы ему лучше объяснил, что $sth->bind_col - это напрашиваться на неприятности.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Debian 9.6 - perl 5.24.1 - UNSIGNED ZEROFILL"  +/
Сообщение от михалыч (ok), 31-Дек-18, 08:42 
> [...]
>> $return .= "<p><a title=\"$row->[1]\" href=\"http://site/?country=$row->[0]\"><span>$row->[1]</span></a></p>\n";
> Ты бы ему лучше объяснил, что $sth->bind_col - это напрашиваться на неприятности.

ну вот, ты ему уже и объяснил ))

а с другой стороны - это его неприятности,
какое нам дело до этого дела ))

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2019 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру