Mailinglisten-Archive |
Hallo Leute Spricht hier jemand Perl? Gibt es einen bekannten Bug in Mysql im zusammenhang mit Perl? Nachfolgendes Statement wird an SQL übergeben, es taucht auch im mysql.log mit den richtigen variablen auf. Aus dem Logfile die ganzen Statements on Block kopiert und in mysql einfach reingeworfen und alle Einträge werden gemacht. Über Perl übergeben nada nix keine Einträge und ich fresse jetzt langsam an der Tischkante... use DBI; my $dbh = DBI->connect('DBI:mysql:database=pdns;host=10.1.0.3;port=3306', 'root' , 'password') || die; my $mySQL = undef; $mySQL = qq{BEGIN; INSERT INTO pdns.domains(name,type,notified_serial) values (\"$dmn_name\", \"NATIVE\", DATE_FORMAT(now(), \"%Y%m%d00\")) ON DUPLICATE KEY UPDATE type = \"NATIVE\", notified_serial = DATE_FORMAT(now(),\"%Y%m%d00\"); COMMIT; BEGIN; SELECT IF((SELECT id FROM pdns.records WHERE name = \"$dmn_name\" AND TYPE = \"SOA\" LIMIT 1)>0, (SELECT \@data := id FROM pdns.records WHERE name = \"$dmn_name\" AND TYPE = \"SOA\" LIMIT 1), (SELECT \@data := NULL)); SELECT \@doid:= id from pdns.domains where name = \"$dmn_name\"; INSERT INTO pdns.records(id, domain_id, name, type, content, ttl, prio, change_date) SELECT \@data, \@doid, \"$dmn_name\", \"SOA\", concat( \"ns1.deltaweb.de. hostmaster.deltaweb.de.\", CURDATE( ) +0, \"00 86400 7200 604800 1800\") , 21600, 0, Unix_timestamp( ) ON DUPLICATE KEY UPDATE domain_id = \@doid, type = \"SOA\", content = concat(\"ns1.deltaweb.de. hostmaster.deltaweb.de.\",CURDATE() + 0,\"00 86400 7200 604800 1800\"), ttl= 21600, prio=0, change_date = Unix_timestamp(); SELECT IF((SELECT id FROM pdns.records WHERE name = \"$dmn_name\" AND type = \"NS\" AND content = \"ns1.deltaweb.de\" LIMIT 1)>0, (SELECT \@data := id FROM pdns.records WHERE name = \"$dmn_name\" AND type = \"NS\" AND content = \"ns1.deltaweb.de\" LIMIT 1), (SELECT \@data := NULL)); INSERT INTO pdns.records(id, domain_id, name, type, content, ttl, prio, change_date) SELECT \@data, \@doid, \"$dmn_name\", \"NS\", \"ns1.deltaweb.de\", 21600, 0, Unix_timestamp( ) ON DUPLICATE KEY UPDATE domain_id = \@doid, type = \"NS\", content = \"ns1.deltaweb.de\", ttl= 21600, prio=0, change_date = Unix_timestamp(); SELECT IF((SELECT id FROM pdns.records WHERE name = \"$dmn_name\" AND type = \"NS\" AND content = \"ns2.deltaweb.de\" LIMIT 1)>0, (SELECT \@data := id FROM pdns.records WHERE name = \"$dmn_name\" AND type = \"NS\" AND content = \"ns2.deltaweb.de\" LIMIT 1), (SELECT \@data := NULL)); INSERT INTO pdns.records(id, domain_id, name, type, content, ttl, prio, change_date) SELECT \@data, \@doid, \"$dmn_name\", \"NS\", \"ns2.deltaweb.de\", 21600, 0, Unix_timestamp( ) ON DUPLICATE KEY UPDATE name = \"$dmn_name\", domain_id = \@doid, type = \"NS\", content = \"ns2.deltaweb.de\", ttl= 21600, prio=0, change_date = Unix_timestamp(); SELECT IF((SELECT id FROM pdns.records WHERE name = \"$dmn_name\" AND type = \"MX\" AND content = \"mx.deltaweb.de\" LIMIT 1)>0, (SELECT \@data := id FROM pdns.records WHERE name = \"$dmn_name\" AND type = \"MX\" AND content = \"mx.deltaweb.de\" LIMIT 1), (SELECT \@data := NULL)); INSERT INTO pdns.records(id, domain_id, name, type, content, ttl, prio, change_date) SELECT \@data, \@doid, \"$dmn_name\", \"MX\", \"mx.deltaweb.de\", 21600, 10, Unix_timestamp( ) FROM pdns.domains t1 where t1.name = \"$dmn_name\" ON DUPLICATE KEY UPDATE domain_id = \@doid, type = \"MX\", content = \"mx.deltaweb.de\", ttl= 21600, prio=10, change_date = Unix_timestamp(); SELECT IF((SELECT id FROM pdns.records WHERE name = \"$dmn_name\" AND type = \"A\" LIMIT 1)>0, (SELECT \@data := id FROM pdns.records WHERE name = \"$dmn_name\" AND type = \"A\" LIMIT 1), (SELECT \@data := NULL)); INSERT INTO pdns.records(id, domain_id, name, type, content, ttl, prio, change_date) SELECT \@data, \@doid, \"$dmn_name\", \"A\", \"$dmn_ip\", 21600, 0, Unix_timestamp( ) ON DUPLICATE KEY UPDATE name = \"$dmn_name\", domain_id = \@doid, type = \"A\", content = \"$dmn_ip\", ttl= 21600, prio=0, change_date = Unix_timestamp(); SELECT IF((SELECT id FROM pdns.records WHERE name = \"www.$dmn_name\" AND type = \"A\" LIMIT 1)>0, (SELECT \@data := id FROM pdns.records WHERE name = \"www.$dmn_name\" AND type = \"A\" LIMIT 1), (SELECT \@data := NULL)); INSERT INTO pdns.records(id, domain_id, name, type, content, ttl, prio, change_date) SELECT \@data, \@doid, \"www.$dmn_name\", \"A\", \"$dmn_ip\", 21600, 0, Unix_timestamp( ) ON DUPLICATE KEY UPDATE domain_id = \@doid, type = \"A\", content = \"$dmn_ip\",ttl= 21600, prio=0, change_date = Unix_timestamp(); COMMIT; }; my $sth = $dbh->prepare($mySQL); $sth->execute(); $sth->finish(); $dbh->disconnect(); ----- Mysql.log das einfach so in PHPMyAdmin oder in MySQL über root rein und alle sind glücklich ich komme einfach nicht drauf wo der Fehler liegt SELECT IF((SELECT id FROM pdns.records WHERE name = "absd.com" AND TYPE = "SOA" LIMIT 1)>0, (SELECT @data := id FROM pdns.records WHERE name = "absd.com" AND TYPE = "SOA" LIMIT 1), (SELECT @data := NULL)); SELECT @doid:= id from pdns.domains where name = "absd.com"; INSERT INTO pdns.records(id, domain_id, name, type, content, ttl, prio, change_date) SELECT @data, @doid, "absd.com", "SOA", concat( "ns1.deltaweb.de. hostmaster.deltaweb.de.", CURDATE( ) +0, "00 86400 7200 604800 1800") , 21600, 0, Unix_timestamp( ) ON DUPLICATE KEY UPDATE domain_id = @doid, type = "SOA", content = concat("ns1.deltaweb.de. hostmaster.deltaweb.de.",CURDATE() + 0,"00 86400 7200 604800 1800"), ttl= 21600, prio=0, change_date = Unix_timestamp(); SELECT IF((SELECT id FROM pdns.records WHERE name = "absd.com" AND type = "NS" AND content = "ns1.deltaweb.de" LIMIT 1)>0, (SELECT @data := id FROM pdns.records WHERE name = "absd.com" AND type = "NS" AND content = "ns1.deltaweb.de" LIMIT 1), (SELECT @data := NULL)); INSERT INTO pdns.records(id, domain_id, name, type, content, ttl, prio, change_date) SELECT @data, @doid, "absd.com", "NS", "ns1.deltaweb.de", 21600, 0, Unix_timestamp( ) ON DUPLICATE KEY UPDATE domain_id = @doid, type = "NS", content = "ns1.deltaweb.de", ttl= 21600, prio=0, change_date = Unix_timestamp(); SELECT IF((SELECT id FROM pdns.records WHERE name = "absd.com" AND type = "NS" AND content = "ns2.deltaweb.de" LIMIT 1)>0, (SELECT @data := id FROM pdns.records WHERE name = "absd.com" AND type = "NS" AND content = "ns2.deltaweb.de" LIMIT 1), (SELECT @data := NULL)); INSERT INTO pdns.records(id, domain_id, name, type, content, ttl, prio, change_date) SELECT @data, @doid, "absd.com", "NS", "ns2.deltaweb.de", 21600, 0, Unix_timestamp( ) ON DUPLICATE KEY UPDATE name = "absd.com", domain_id = @doid, type = "NS", content = "ns2.deltaweb.de", ttl= 21600, prio=0, change_date = Unix_timestamp(); SELECT IF((SELECT id FROM pdns.records WHERE name = "absd.com" AND type = "MX" AND content = "mx.deltaweb.de" LIMIT 1)>0, (SELECT @data := id FROM pdns.records WHERE name = "absd.com" AND type = "MX" AND content = "mx.deltaweb.de" LIMIT 1), (SELECT @data := NULL)); INSERT INTO pdns.records(id, domain_id, name, type, content, ttl, prio, change_date) SELECT @data, @doid, "absd.com", "MX", "mx.deltaweb.de", 21600, 10, Unix_timestamp( ) FROM pdns.domains t1 where t1.name = "absd.com" ON DUPLICATE KEY UPDATE domain_id = @doid, type = "MX", content = "mx.deltaweb.de", ttl= 21600, prio=10, change_date = Unix_timestamp(); SELECT IF((SELECT id FROM pdns.records WHERE name = "absd.com" AND type = "A" LIMIT 1)>0, (SELECT @data := id FROM pdns.records WHERE name = "absd.com" AND type = "A" LIMIT 1), (SELECT @data := NULL)); INSERT INTO pdns.records(id, domain_id, name, type, content, ttl, prio, change_date) SELECT @data, @doid, "absd.com", "A", "193.239.107.18", 21600, 0, Unix_timestamp( ) ON DUPLICATE KEY UPDATE name = "absd.com", domain_id = @doid, type = "A", content = "193.239.107.18", ttl= 21600, prio=0, change_date = Unix_timestamp(); SELECT IF((SELECT id FROM pdns.records WHERE name = "www.absd.com" AND type = "A" LIMIT 1)>0, (SELECT @data := id FROM pdns.records WHERE name = "www.absd.com" AND type = "A" LIMIT 1), (SELECT @data := NULL)); INSERT INTO pdns.records(id, domain_id, name, type, content, ttl, prio, change_date) SELECT @data, @doid, "www.absd.com", "A", "193.239.107.18", 21600, 0, Unix_timestamp( ) ON DUPLICATE KEY UPDATE domain_id = @doid, type = "A", content = "193.239.107.18",ttl= 21600, prio=0, change_date = Unix_timestamp(); COMMIT Mit freundlichen Grüßen Drießen -- Software & Computer Uwe Drießen Lembergstraße 33 67824 Feilbingert Tel.: +49 06708 / 660045 Fax: +49 06708 / 661397 _______________________________________________ Allgemeine Infos zur Liste: http://www.4t2.com/mysql/ Verwaltung: https://lists.4t2.com/cgi-bin/mailman/listinfo/mysql-de
php::bar PHP Wiki - Listenarchive