Overview
Comment:unification recherche sql
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 0acf969b8d84250e51872a7d4a18320c0ffca02f
User & Date: bohwaz on 2014-10-22 13:38:38
Other Links: manifest | tags
Context
2014-11-06
00:45
running_sum via sqlite n'était pas fiable, faisons-le en PHP check-in: 199862d6c4 user: bohwaz tags: trunk
2014-10-22
13:38
unification recherche sql check-in: 0acf969b8d user: bohwaz tags: trunk
2014-10-14
15:41
Fix [eedb396118] Signe des soldes dans les reports à nouveau check-in: a8872bfc2d user: bohwaz tags: trunk
Changes

Modified src/include/class.compta_journal.php from [5b38c26b18] to [b035698dd5].

320
321
322
323
324
325
326
327
328
329
330
331





332
333
334
335
336
337
338
        return $db->simpleStatementFetch($query);
    }

    public function searchSQL($query)
    {
        $db = DB::getInstance();

        if (!preg_match('/LIMIT\s+/', $query))
        {
            $query = preg_replace('/;?\s*$/', '', $query);
            $query .= ' LIMIT 100';
        }






        $st = $db->prepare($query);

        if (!$st->readOnly())
        {
            throw new UserException('Seules les requêtes en lecture sont autorisées.');
        }







|




>
>
>
>
>







320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
        return $db->simpleStatementFetch($query);
    }

    public function searchSQL($query)
    {
        $db = DB::getInstance();

        if (!preg_match('/LIMIT\s+/i', $query))
        {
            $query = preg_replace('/;?\s*$/', '', $query);
            $query .= ' LIMIT 100';
        }

        if (preg_match('/;\s*(.+?)$/', $query))
        {
            throw new UserException('Une seule requête peut être envoyée en même temps.');
        }

        $st = $db->prepare($query);

        if (!$st->readOnly())
        {
            throw new UserException('Seules les requêtes en lecture sont autorisées.');
        }

Modified src/include/class.membres.php from [5f240c7db4] to [2d54d77de9].

731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761





762
763
764
765
766
767
768
        return true;
    }

    public function searchSQL($query)
    {
        $db = DB::getInstance();

        $st = $db->prepare($query);

        if (!$st->readOnly())
        {
            throw new UserException('Seules les requêtes en lecture sont autorisées.');
        }

        if (!preg_match('/LIMIT\s+/', $query))
        {
            $query = preg_replace('/;?\s*$/', '', $query);
            $query .= ' LIMIT 100';
        }

        if (!preg_match('/FROM\s+membres(?:\s+|$|;)/i', $query))
        {
            throw new UserException('Seules les requêtes sur la table membres sont autorisées.');
        }

        if (preg_match('/;\s*(.+?)$/', $query))
        {
            throw new UserException('Une seule requête peut être envoyée en même temps.');
        }

        $st = $db->prepare($query);






        $res = $st->execute();
        $out = [];

        while ($row = $res->fetchArray(SQLITE3_ASSOC))
        {
            if (array_key_exists('passe', $row))







<
<
<
<
<
<
<
|





<
<
<
<
<






>
>
>
>
>







731
732
733
734
735
736
737







738
739
740
741
742
743





744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
        return true;
    }

    public function searchSQL($query)
    {
        $db = DB::getInstance();








        if (!preg_match('/LIMIT\s+/i', $query))
        {
            $query = preg_replace('/;?\s*$/', '', $query);
            $query .= ' LIMIT 100';
        }






        if (preg_match('/;\s*(.+?)$/', $query))
        {
            throw new UserException('Une seule requête peut être envoyée en même temps.');
        }

        $st = $db->prepare($query);

        if (!$st->readOnly())
        {
            throw new UserException('Seules les requêtes en lecture sont autorisées.');
        }

        $res = $st->execute();
        $out = [];

        while ($row = $res->fetchArray(SQLITE3_ASSOC))
        {
            if (array_key_exists('passe', $row))