[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: `mysql da linea di comando`



On Sat, Dec 04, 2004 at 03:46:47PM +0100, Leonardo Boselli wrote:
> Il 4 Dec 2004 alle 14:55 Mattia Dongili immise in rete
> > sembrerebbe che xargs faccia al caso tuo. Ti dovrebbe venire qualcosa
> > come: $ (mysql --batch ... | xargs echo) | mail -s 'posta!' user
> > ma poi scusa, vuoi spedire tutti i risultati della query per mail su
> > un'unica riga??
> 
> no, il contrario, voglio usare i risultati della query come indirizzo, quindi 
> mail -c `risultato query`
> per questo mi servivano su una sola riga ...

un'altro motivo per usare un linguaggio un po' piu' strutturato...
vediamo un po'... con un po' di copia e incolla (o cat e grep ^__^) dai
perldoc (ah, io ho solo un postgres qui):

--- 8< --- 8< --- 8< --- 8< --- 8< ---
#!/usr/bin/perl

use DBI;
use Net::SMTP;
use strict;

my ($first_name, $last_name, $email);
my (@row, @cc);

my $conn = DBI->connect("dbi:Pg:dbname=mattiadb");
my $query = $conn->prepare( "SELECT first_name, last_name, email" .
                            " FROM users" .
                            " ORDER BY last_name, first_name");
$query->execute();
while (@row = $query->fetchrow_array()) {
  ($first_name, $last_name, $email) = @row;
  push(@cc, sprintf("%s <%s>", $first_name . " " . $last_name, $email));
}
$conn->disconnect();

my $smtp = Net::SMTP->new('localhost');
$smtp->mail('mattia@localhost');
$smtp->recipient(@cc, { SkipBad => 1 });
$smtp->data();
$smtp->datasend("\n");
$smtp->datasend("A simple test message\n");
$smtp->dataend();
$smtp->quit;
--- 8< --- 8< --- 8< --- 8< --- 8< ---

non c'e' un minimo di gestione degli errori ma rende l'idea.
Ah, ti servono libdbd-mysql-perl e libnet-perl.

aloha
PS: toglietemi dal Cc!!
-- 
mattia
:wq!



Reply to: