[Perl] postgresql query

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
mrserious
Beiträge: 266
Registriert: 22.06.2013 12:12:03

[Perl] postgresql query

Beitrag von mrserious » 30.04.2014 21:55:40

Hallo!

Möchte ein Skript schreiben, dem ich einen User-Namen übergebe, sodass es mir die zugehörige Mac-Adresse heraussucht.
Die Relation soll über eine Postgres-Datenbank hergestellt werden.
Problem:
Das Skript gibt einfach nichts zurück.
Dazu sei gesagt: Bin blutiger Perl-Anfänger.

Könnt ihr mir helfen?

Code: Alles auswählen


#!/usr/bin/perl

use DBI;

$dsn = "dbi:Pg:dbname=datenbank";
$dbh = DBI->connect($dsn);
   if (!$dbh) {
       print "Zugriff verweigert!\n";
       exit (1);
   }


my ($name) = @ARGV;

$query = "SELECT mac FROM datenbank where username='$name'";

 $sth = $dbh->prepare($query);
 $rv = $sth->execute;

 if ($rv <= 0) {
       print "Nichts gefunden!\n";
   }


@row = $sth->fetchrow_array;



while ($row = $sth->fetchrow_hashref) {
     printf "$row->{'mac'}\n"
   }

Gebe ich einen korrekten Namen ein, zu dem es einen Eintrag in der DB gibt, so erhalte ich garkeine Rückgabe.
Bei falschem Namen bekomme ich eine entsprechende Fehlermeldung.

Grüße
Zuletzt geändert von TRex am 02.05.2014 13:33:03, insgesamt 1-mal geändert.
Grund: Titel um Inhalt erweitert

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: [Perl]

Beitrag von roli » 02.05.2014 11:18:38

Hi,

du könntest ja mal damit anfangen

Code: Alles auswählen

use strict;
use warnings;
zu verwenden.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Benutzeravatar
shoening
Beiträge: 898
Registriert: 28.01.2005 21:05:59
Lizenz eigener Beiträge: MIT Lizenz

Re: [Perl]

Beitrag von shoening » 02.05.2014 11:30:59

Hi,

ich kann Dir zwar bei Deiner Frage nicht weiterhelfen, aber der (Sicherheits-)Hinweis sei erlaubt, dass
Deine Query eine SQL-Injection ermöglicht.

Ciao
Stefan
Bürokratie kann man nur durch ihre Anwendung bekämpfen.

Antworten