Requête SQL dans un script Perl
Bonjour,
J'ai un script Perl sous la main qui est censé prendre certaines informations de 2 tables en même temps et les retranscrire dans une autre table (vide en l'occurrence). Cependant, cette requête comporte une erreur de syntaxe MySQL. La voici ci-dessous :
Code:
1 2 3 4 5 6 7 8
| eval { $dbh->do("REPLACE INTO userlog (id, raw_mac, ip_saddr, ip_daddr, ip_protocol, tcp_sport, tcp_dport,
udp_sport, udp_dport, timestamp, username) (SELECT u.'id', r.'callingstationid' AS raw_mac,
INET_NTOA(u.'ip_saddr') AS ip_saddr, INET_NTOA(u.'ip_daddr') AS ip_daddr, u.'ip_protocol', u.'tcp_sport', u.'tcp_dport',
u.'udp_sport', u.'udp_dport', u.'timestamp', r.'username' FROM ulog u, radacct r
WHERE (u.'timestamp' = r.'acctstarttime' OR u.'timestamp' > r.'acctstarttime')
AND ((u.'timestamp' = r.'acctstoptime') OR (u.'timestamp' < r.'acctstoptime') OR (r.'acctstoptime' IS NULL))
AND (u.'ip_saddr' = INET_ATON(r.'framedipaddress')))
AND (TO_DAYS(NOW()) - TO_DAYS(u.'timestamp') < 7)") }; |
L'erreur que me signale MySQL se trouverait apparemment près de la dernière ligne au niveau de :
Code:
AND (TO_DAYS(NOW()) - TO_DAYS(u.'timestamp') < 7)") };
J'ai tenté de changer la position d'une parenthèse fermante mais phpMyAdmin a planté après cela ... (en indiquant la table userlog "marked as crashed").
Quelqu'un voit-il ce qui cloche ? :?