in reply to Re^7: using system command in regex
in thread using system command in regex
Hey Programatic you are also doing the same but you are passing all the column names once by using join & map. Good thought. But in place holders If i place table name its showing a error.
DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''CDR' where Date = '13-10-2015' and Hour like '00:%'' at line 1 at DB_Test.pl line 25.So I replaced my '?' with table name. Then its working good. Even though I used your logic I need to maintain all my column names in array. I want to change that. Here I am writing all columns in program into big arrays which is looking odd. Can I get that coloumn names from db???
Sample (Tested)
#!/usr/bin/perl use strict; use warnings; use DBI; my $db_date=$ARGV[0]; #04-10-2015 my $hour = "00"; my $db_name = "ravi"; my $table_name = "CDR"; my $host = "xxx.xx.x.xxx"; my @CDR_array = ("Total_MO","Total_MO_sucess","MO_userdep_error","MO_s +ubcrib_error","MO_system_error","Total_MO_success_rate","Total_AO","T +otal_AO_sucess","AO_userdep_error","AO_subcrib_error","AO_system_erro +r","Total_AO_success_rate","Total_MT_P2P","Total_MT_sucess_P2P","MT_P +2P_userdep_error","MT_P2P_subcrib_error","MT_P2P_system_error","Total +_MT_P2P_success_rate","Total_MT_A2P","Total_MT_sucess_A2P","MT_A2P_us +erdep_error","MT_A2P_subcrib_error","MT_A2P_system_error","Total_MT_A +2P_success_rate","Total_AT","Total_AT_sucess","AT_ESMEdep_error","AT_ +network_error","AT_system_error","Total_AT_success_rate","P2P_FDA_cou +nt","P2P_FDA_success_count","P2P_FDA_success_rate","A2P_FDA_count","A +2P_FDA_success_count","A2P_FDA_success_rate","Total_Count","Total_TPS +","Greatest_TPS"); my $dbh = DBI->connect("DBI:mysql:database=$db_name;host=$host;mysql_s +ocket=/opt/lampstack-5.5.27-0/mysql/tmp/mysql.sock","root","",{'Raise +Error' => 1}); my $sql = "select ".join ",", map { "sum($_)" } @CDR_array; $sql .= " from CDR where Date = ? and Hour like ?"; my $sth = $dbh->prepare( $sql ) or die "Cant get prepare"; $sth->execute($db_date, "$hour:%") or die $DBI::errstr; my @my_array = $sth->fetchrow_array(); print $my_array[1],$/; print @my_array,$/;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^9: using system command in regex
by shmem (Chancellor) on Oct 16, 2015 at 07:27 UTC | |
by ravi45722 (Pilgrim) on Oct 16, 2015 at 09:50 UTC |