SQL-Abfrage
juha
- perl
HAllo Zusammen
Folgendes würde ich gerne zum x-ten Mal in meinem Perlprogramm anwenden, was ist daran falsch?
Wenn ich es am schluss zur Kontrolle mal ausprinten möchte steht nichts in $datum und auch nichts in $hash_datum->{batch_datum}, führe ich dies gleich in der Datenbank aus so funktioniert mein select befehl!
(z.B. select max(batch_datum) from batch where pers_id = 20; )
Hier der Code:
$select = "select max(batch_datum) from batch where pers_id = $schluss";
my($datum) = $dbh->prepare($select);
$datum->execute();
$hash_datum = $datum->fetchrow_hashref;
$datum = $hash_datum->{batch_datum};
print $hash_datum->{batch_datum};
print $datum;
Danke vielmals
Juha
Hi,
$select = "select max(batch_datum) from batch where pers_id = $schluss";
erster Test:
print $select;
Anschließend führe das *exakte* Statement in der DB aus, nicht ein beispielhaftes. Copy & Paste ist angesagt.
my($datum) = $dbh->prepare($select);
Warum Listenkontext?
my $datum = $dbh->prepare($select);
$datum->execute();
Übrigens solltest Du Dir angewöhnen, mit Bindvariablen zu arbeiten. Stichwort Performance.
$hash_datum = $datum->fetchrow_hashref;
Schon mal andere fetchrows probiert?
$datum = $hash_datum->{batch_datum};
Ich nehme nämlich an, dass "max(batch_datum)" am Ende nicht "batch_datum" heißt.
Cheatah
Hallo
erster Test:
print $select;
Kam genau das was ich wollte
Anschließend führe das *exakte* Statement in der DB aus, nicht ein beispielhaftes. Copy & Paste ist angesagt.
Ebenfalls erfolgreich durchgeführt
my($datum) = $dbh->prepare($select);
Warum Listenkontext?
my $datum = $dbh->prepare($select);
$datum->execute();
Übrigens solltest Du Dir angewöhnen, mit Bindvariablen zu arbeiten. Stichwort Performance.
$hash_datum = $datum->fetchrow_hashref;
Schon mal andere fetchrows probiert?
Kenn mich nur mit diesen aus, gibt es denn noch andere varianten?
$datum = $hash_datum->{batch_datum};
Ich nehme nämlich an, dass "max(batch_datum)" am Ende nicht "batch_datum" heißt.
Es stimmt genau, ich möchte den letzten eintrag von batch_datum welcher die ID "sowieso" hat!
Grüsse juha
Hi,
$hash_datum = $datum->fetchrow_hashref;
Schon mal andere fetchrows probiert?
Kenn mich nur mit diesen aus, gibt es denn noch andere varianten?
ja, siehe
perldoc DBI
$datum = $hash_datum->{batch_datum};
Ich nehme nämlich an, dass "max(batch_datum)" am Ende nicht "batch_datum" heißt.
Es stimmt genau, ich möchte den letzten eintrag von batch_datum welcher die ID "sowieso" hat!
Tja. Lass Dir doch mal die Keys des Hashs ausgeben.
Cheatah