Schrift
[thread]10915[/thread]

SQL::Abstract und Between

Leser: 1


<< >> 2 Einträge, 1 Seite
Froschpopo
 2007-11-28 20:59
#103235 #103235
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Ich möchte gern alle Einträge der letzten Tage anzeigen:
Code (perl): (dl )
1
2
3
$where{datum} = {
        -between => ['DATESUB(CURDATE(), INTERVAL 6 DAY', 'CURDATE()']
};

warum klappt das so nicht?
Das Problem ist, dass er hinterher die -between-Argumente quotet.

Im Code steht also hinterher:
WHERE datum BETWEEN ? AND ?
Froschpopo
 2007-11-28 21:41
#103237 #103237
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Ich hab jetzt hier mal zum zweck des Copy&Paste ein Beispiel gemacht:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/perl

use strict;
use warnings;
use SQL::Abstract;

my $sql = SQL::Abstract->new;

my %where = (
        datum => {
                -between => ['(DATESUB(CURDATE(), INTERVAL 6 DAY)', 'CURDATE()']
        }
);

my ($sth, @bind) = $sql->select('table', 'id', \%where);

print $sth,"\n";


Ausgabe:
SELECT id FROM table WHERE ( datum BETWEEN ? AND ? )

In der Doku ist leider nur ein -between-Beispiel mit blanken Werten:
-between => ['wert1', 'wert2']

Aber leider wird nicht erklärt, wie man verhindert, dass Funktionen gequoted werden.
<< >> 2 Einträge, 1 Seite



View all threads created 2007-11-28 20:59.