mysql und Perl

Thomas Goik - auxion.de technik at auxion.de
Mi Apr 22 15:13:28 CEST 2009


Hallo Uwe;

Mach mal den Error Report an, bei  Connect PrintError => 1

Dann sollte er dir die Fehler ausgeben.



Mit freundlichen Grüssen
Thomas Goik

--
Lofox GmbH
Geschäftsführerin: Evelyn Fuchs
Im Kamperholz 48
44805 Bochum - Germany
Amtsgericht Bochum HRB 7042
USt-IdNr.: DE215698227
St.-Nr. Bochum 306/5885/0172

> -----Mensaje original-----
> De: mysql-de-bounces at lists.4t2.com [mailto:mysql-de-
> bounces at lists.4t2.com] En nombre de Uwe Driessen
> Enviado el: martes, 21 de abril de 2009 22:29
> Para: mysql-de at lists.4t2.com
> Asunto: mysql und Perl
> 
> 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