Ich bin nicht in der Lage, die Ausgabe richtig mit dem folgenden Code abrufen. Bitte hilf mir, es zu klären.fetchrow_hashref Problem in Perl
Ich bekomme anders ausgegeben, um in MySQL und Perl zu laufen.
Ab sofort gibt es undef zurück, wenn ich Dumper benutze. Aber ich möchte, dass es null anzeigt.
$reactivate_sth = $dbh->prepare("
SELECT
a,
b
FROM
table
WHERE
c = ?
AND
d = ?
ORDER BY
date DESC
");
$reactivate_sth->execute($c, $d);
print $result = $reactivate_sth->fetchrow_hashref();
OUTPUT:
MySQL:
Empty set (0.00 sec)
Perl:
HASH(0x3068198)
Data :: Dumper
VAR1 = undef
Was zeigt 'Data :: Dumper' das' $ result' -Hash enthält? Befindet sich das MySQL unter einem transaktionalen Status (der möglicherweise ein 'commit' erfordert)? –
Was @DravSloan sagte. Sind Sie sicher, dass Sie sich in beiden Fällen mit derselben Datenbankinstanz verbinden? –
Es kann sich herausstellen, dass Sie ein "leeres" Ergebnis von 'fetchrow_hashref()' validieren können, indem Sie 'if (!% $ Result)' ausgeben. Wenn ein leerer Hashwert getestet wird, wird false zurückgegeben, wenn er keine Schlüssel/Wert-Paare enthält. (Sie müssen Ihrem Hash den Operator '%' voranstellen, da es sich um eine Hash-Referenz handelt). –