Thread Problem mit Wildcards in der DB Query (8 answers)
Opened by Timo at 2019-07-11 11:46

rosti
 2019-07-11 14:38
#190227 #190227
User since
2011-03-19
3471 Artikel
BenutzerIn
[Homepage]
user image
Ergänzung: Es gibt außerdem auch
Quote
quote_identyfier()
für Tabellen und Feldnamen, falls diese escaped werden müssen. Und an diesem Punkt, also wo man diese Funktion explizit aufrufen muss, ist man sehr schnell angelangt ;)


MFG

PS: Untenstehend noch eine universelle insert-Funktion aus meiner FW Factory:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use strict;
use warnings;


sub insert{
    my $self = shift;        # Instanz einer beliebigen Klasse
    my $dbh  = shift;        # DB Handle
    my $tabn = shift;        # Tabname
    my %hunt = @_;           # field => value
    my @fields = keys %hunt;
    $dbh->do(qq(
        INSERT INTO @{[$dbh->quote_identifier($tabn)]} (@{[join ',', map{$dbh->quote_identifier($_)}@fields]}) 
        VALUES( @{[join ',', map{$dbh->quote($_)}@hunt{@fields}]} )
    ));
}

1;


Verwendet also quote() und quote_identyfier() um einen universellen Einsatz zu ermöglichen. Anwendung:
Code (perl): (dl )
1
2
3
4
5
6
7
        $self->insert($dbh, "log",
            url   => "$proto$ENV{SERVER_NAME}$self->{URL}",
            ref   => $ref,
            hugo  => $hugo,
            lang  => $self->{LANG},
            title => $title
        );


Und das ist einfach nur geil ;)

.
Last edited: 2019-07-11 20:08:12 +0200 (CEST)

View full thread Problem mit Wildcards in der DB Query