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 perl : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
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").
Code : Sélectionner tout - Visualiser dans une fenêtre à part AND (TO_DAYS(NOW()) - TO_DAYS(u.'timestamp') < 7)") };
Quelqu'un voit-il ce qui cloche ?![]()
Partager