2013-11-29 4 views
-1

Я получаю эту ошибку при error_log ApacheMysql 4 до 5 - выражение сценария Change

[Пт 29 ноября 15:03:49 2013] [ошибка] [клиент 81.15.135.11] SELECT COUNT (*), COUNT (DISTINCT UserName), COUNT (DISTINCT CallingStationId) ОТ radacct ГДЕ AcctStartTime LIKE '% 2013-11-22%', реферер: http://www.company.com/caoad/charts.cgi

[Пт 29 ноября 15:02:46 2013] [ошибка] [клиент 81,15 .135.11] SELECT SUM (AcctOutputOctets), СУММА (AcctInputOctets) ОТ radacct ГДЕ AcctStartTime LIKE '% 2013-11-19%', реферер: http://www.company.com/caoad/charts.cgi

SELECT COUNT(*),COUNT(DISTINCT UserName),COUNT(DISTINCT CallingStationId) 
FROM radacct 
WHERE AcctStartTime LIKE '%2013-11-10%' 

SELECT SUM(AcctOutputOctets),SUM(AcctInputOctets) 
FROM radacct 
WHERE AcctStartTime LIKE '%2013-11-09%' 

Синтаксис, вероятно, изменился с Mysql 4 на 5, и я точно не знаю, как его изменить.

Если кто-нибудь может дать мне несколько указателей, которые были бы замечательными. Спасибо.

#!/usr/bin/perl 
use Chart::Lines; 
do "ho.pl"; 
$numdays = $forminput{'numdays'}; 
$partner = $forminput{'partner'}; 
my $nas = $forminput{'nasidentifier'}; 
if (!$numdays){ 
    $numdays = 7; 
} 
$multiplier = 38; 
if ($numdays > 30){ 
$small=1; 
$multiplier = 8; 
} 
$g = Chart::Lines->new(50+($numdays*$multiplier),500); 
@day_names = qw(Sun Mon Tue Wed Thu Fri Sat); 
$accum=0; 
for (my $count=$numdays; $count>0; $count--) { 

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time() - 60*60*24*$count); 
$mon++; 
$montext = sprintf "%02d",$mon; 
$mdaytext = sprintf "%02d", $mday; 
$year = $year + 1900; 
if ($partner){ 
%hotspotpartners = get_hotspot_trading_partners(); 
my $matchstring; 
my $countage=0; 
foreach (keys %hotspotpartners){ 
    if ($hotspotpartners{$_} == $partner){ 
    if ($countage != 0){ 
     $matchstring .= " OR "; 
    } 
    $matchstring .= "NASIdentifier='$_'"; 
    $countage++; 
    } 
} 

    $sql = "SELECT COUNT(*),COUNT(DISTINCT UserName),COUNT(DISTINCT CallingStationId) 
FROM radacct 
WHERE AcctStartTime LIKE '%"."$year-$montext-$mdaytext%' AND ($matchstring)"; 
} else { $sql = "SELECT COUNT(*),COUNT(DISTINCT UserName),COUNT(DISTINCT CallingStationId) FROM radacct WHERE AcctStartTime LIKE '%"."$year-$montext-$mdaytext%'"; 
} 
if ($nas){ 
     $sql .= " AND NASIdentifier = '$nas'"; 
} 
print STDERR $sql; 
    my $sth = $dbh->prepare($sql); 
$sth->execute(); 
($temp,$unique,$mac) = $sth->fetchrow(); 
if ($small){ 
$title=""; 
} else { 
$title = "$day_names[$wday] $mday/$mon"; 
} 
$g->add_pt($title, $temp,$unique,$mac); 
$accum = $accum + $temp; 
} 
$accum = int($accum/$numdays); 
my @legend_labels = qw(Total Unique MACS); 
$g->set('sub_title' => 'Average : '.$accum.' logins per day'); 
$g->set('min_val' => 0); 
if (!$small){ 
$g->set('grid_lines' =>'true'); 
} 
$g->set('x_label' =>'Date'); 
$g->set('y_label' =>'Number of logins'); 
$g->set('legend_labels' => \@legend_labels); 
$g->set('transparent' =>'true'); 
$g->cgi_png(); 
# журнал

Ошибка после внесения изменений на сценарий к:

use strict; 
use warnings; 
#
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Scalar value @abbr[$county] better written as $abbr[$county] at /var/www/cgi-bin/ovad/chart-day.cgi line 47., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$last" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 10., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "%forminput" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 10., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$last" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 11., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$last" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 12., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$last" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 15., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$last" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 22., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$last" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 28., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$last" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 35., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$g" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 39., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$sql" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 43., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$sql" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 44., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$dbh" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 45., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$sql" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 45., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$g" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 47., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "@legend_labels" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 52., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$g" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 53., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$g" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 54., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$g" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 55., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$g" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 56., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$g" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 57., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$g" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 58., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$g" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 60., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$g" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 61., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "@legend_labels" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 61., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$g" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 62., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "$g" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 63., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Global symbol "@data" requires explicit package name at /var/www/cgi-bin/ovad/chart-day.cgi line 63., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Execution of /var/www/cgi-bin/ovad/chart-day.cgi aborted due to compilation errors., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:33 2013] [error] [client 82.15.145.17] Premature end of script headers: chart-day.cgi, referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:34 2013] [error] [client 82.15.145.17] Global symbol "$numdays" requires explicit package name at /var/www/cgi-bin/ovad/chart-bandwidthhistory.cgi line 6., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:34 2013] [error] [client 82.15.145.17] Global symbol "%forminput" requires explicit package name at /var/www/cgi-bin/ovad/chart-bandwidthhistory.cgi line 6., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:34 2013] [error] [client 82.15.145.17] Global symbol "$partner" requires explicit package name at /var/www/cgi-bin/ovad/chart-bandwidthhistory.cgi line 7., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:34 2013] [error] [client 82.15.145.17] Global symbol "%forminput" requires explicit package name at /var/www/cgi-bin/ovad/chart-bandwidthhistory.cgi line 7., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:34 2013] [error] [client 82.15.145.17] Global symbol "%forminput" requires explicit package name at /var/www/cgi-bin/ovad/chart-bandwidthhistory.cgi line 8., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:34 2013] [error] [client 82.15.145.17] Global symbol "$numdays" requires explicit package name at /var/www/cgi-bin/ovad/chart-bandwidthhistory.cgi line 9., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:34 2013] [error] [client 82.15.145.17] Global symbol "$numdays" requires explicit package name at /var/www/cgi-bin/ovad/chart-bandwidthhistory.cgi line 10., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:34 2013] [error] [client 82.15.145.17] Global symbol "$multiplier" requires explicit package name at /var/www/cgi-bin/ovad/chart-bandwidthhistory.cgi line 12., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:34 2013] [error] [client 82.15.145.17] Global symbol "$numdays" requires explicit package name at /var/www/cgi-bin/ovad/chart-bandwidthhistory.cgi line 13., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:34 2013] [error] [client 82.15.145.17] Global symbol "$small" requires explicit package name at /var/www/cgi-bin/ovad/chart-bandwidthhistory.cgi line 14., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:34 2013] [error] [client 82.15.145.17] Global symbol "$multiplier" requires explicit package name at /var/www/cgi-bin/ovad/chart-bandwidthhistory.cgi line 15., referer: /ovad/charts.cgi 
[Fri Nov 29 15:36:34 2013] [error] [client 82.15.145.17] Global symbol "$g" requires explicit package name at /var/www/cgi-bin/ovad/chart-bandwidthhistory.cgi line 17., referer: /ovad/charts.cgi 
+2

exacttly ЧТО ошибка вы получаете? В SQL-запросе нет ничего плохого. И почему вы отметили это с помощью PHP, но используете Perl? –

+0

Просьба предоставить структуру radacct-таблицы с образцами данных через sqlfiddle. Попробуйте свой запрос там. – user4035

+0

Ваши первые строки после shebang в любом из ваших скриптов perl должны быть 'use strict; использовать предупреждения. Возможно, ваша проблема будет разъяснена с этим. –

ответ

1

Какие поля 'AcctStartTime'? Если это поле datetime (или похожее), я не думаю, что вы можете использовать «как» на нем.

Вы, вероятно, хотите:

where date(acctStartTime) = '2013-11-09' 
+0

его таблица, используемая для хранения записей на контроллере радиуса для горячей точки. Время запуска учетной записи - это когда пользователь сначала регистрируется. – Leorudolph

+0

Да, но какое поле это в таблице mysql? Если это не varchar или другое значение типа string, вы не хотите использовать подобное. –

+0

В MySQL более эффективно использовать 'where acctStartTime> =" 2013-11-09 00:00:00 "и acctStartTime <=" 2013-11-09 23:59:59 ". Использование функции 'date()' приведет к тому, что индексы не будут использоваться. – jordanm

Смежные вопросы