Thread Perl DBI DBD::MySQL Abfrage Problem (19 answers)
Opened by gmafx at 2009-11-19 16:49

gmafx
 2009-11-19 16:49
#128335 #128335
User since
2009-11-19
47 articles
BenutzerIn
[default_avatar]
Hallo,

ich versuche aus einem Perl-Skript eine Datenbankabfrage einzulesen. Die Abfrage funktioniert prinzipiell, wenn man sie aus dem MySQL-Query Browser ausführt, bricht aber immer kurz vor Ende der Abfrage ab, wenn ich sie aus dem PerlSkript starte:


Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$database = "dbname";
$host = "localhost";
$user = "username";
$pw = "pw";
$searchstring = "ein in Spalte 1 vorkommender Wert"

$dsn = "dbi:mysql:$database:localhost:3306";
$connect = DBI->connect($dsn, $user, $pw);

$query = "select * from dbname where value1 = '$searchstring'";
$query_handle = $connect->prepare($query);
$query_handle->execute();
$query_handle->bind_columns(\$value1, \$value2);
while($query_handle->fetch()) {

print OUTPUT "$value1\t","$value2\n";

}


Der Prozess friert ein, es gibt keine Fehlermeldung. Die letzte Zeile der aus der Abfrage erhaltenen Werte wird nur unvollständig ausgegeben.

Insgesamt haben die Tabellen, die abgefragt werden, ca. 5000000 Einträge. Die "where"-Klausel schränkt die Liste der Ergebnisse auf etwa 500000 Zeilen ein. Je nach Tabelle hängt sich der Prozess etwa 100 Einträge vor dem Ende auf.


Was läuft hier schief?

Die fehlenden Werte werden ausgelesen, wenn ich die "where"-Klausel weglasse, also der gesamte Inhalt angezeigt werden soll. Allerdings hängt sich das Skript dann wiederrum kurz vor dem Ende auf.

Irgendwie würde ich ja die Übergabe der Abfrage anders regeln, allerdings komme ich mit fetchrow_array etc nicht zurecht.
gma


mod-edit renee: code-Tags korrigiert...
Last edited: 2009-11-19 17:27:10 +0100 (CET)

View full thread Perl DBI DBD::MySQL Abfrage Problem