Overview
Comment:DB: Ajout méthode close(), et autorisation d'avoir un WHERE vide dans UPDATE
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | dev
Files: files | file ages | folders
SHA1: 4569a5c086cb8d12ca10d881a71f299a7e7a37d0
User & Date: bohwaz on 2017-05-09 06:58:51
Other Links: branch diff | manifest | tags
Context
2017-05-09
06:59
Simplification script mise à jour de la session check-in: b159a9fb16 user: bohwaz tags: dev
06:58
DB: Ajout méthode close(), et autorisation d'avoir un WHERE vide dans UPDATE check-in: 4569a5c086 user: bohwaz tags: dev
06:58
Config plus lisible, plus de doc check-in: bfdb9ce4b1 user: bohwaz tags: dev
Changes

Modified src/include/lib/Garradin/DB.php from [63d8b000ce] to [f8181ce16e].

60
61
62
63
64
65
66






67
68
69
70
71
72
73
        if ($create)
        {
            $this->flags |= \SQLITE3_OPEN_CREATE;
        }

        // Ne pas se connecter ici, on ne se connectera que quand une requête sera faite
    }







    public function connect()
    {
        if ($this->db)
        {
            return true;
        }







>
>
>
>
>
>







60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
        if ($create)
        {
            $this->flags |= \SQLITE3_OPEN_CREATE;
        }

        // Ne pas se connecter ici, on ne se connectera que quand une requête sera faite
    }

    public function close()
    {
        $this->db->close();
        $this->db = null;
    }

    public function connect()
    {
        if ($this->db)
        {
            return true;
        }
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
     * Met à jour une ou plusieurs lignes de la table
     * @param  string       $table  Nom de la table
     * @param  array|object $fields Liste des champs à mettre à jour
     * @param  string       $where  Clause WHERE
     * @param  array|object $args   Arguments pour la clause WHERE
     * @return boolean
     */
    public function update($table, $fields, $where, $args = [])
    {
        assert(is_string($table));
        assert(is_string($where) && strlen($where));
        assert(is_array($fields) || is_object($fields));
        assert(is_array($args) || is_object($args));

        // Forcer en tableau
        $fields = (array) $fields;
        $args = (array) $args;








|


|







351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
     * Met à jour une ou plusieurs lignes de la table
     * @param  string       $table  Nom de la table
     * @param  array|object $fields Liste des champs à mettre à jour
     * @param  string       $where  Clause WHERE
     * @param  array|object $args   Arguments pour la clause WHERE
     * @return boolean
     */
    public function update($table, $fields, $where = null, $args = [])
    {
        assert(is_string($table));
        assert((is_string($where) && strlen($where)) || is_null($where));
        assert(is_array($fields) || is_object($fields));
        assert(is_array($args) || is_object($args));

        // Forcer en tableau
        $fields = (array) $fields;
        $args = (array) $args;

371
372
373
374
375
376
377





378
379
380
381
382
383
384
        foreach ($fields as $key=>$value)
        {
            // Append to arguments
            $args['field_' . $key] = $value;

            $column_updates[] = sprintf('%s = :field_%s', $key, $key);
        }






        // Assemblage de la requête
        $column_updates = implode(', ', $column_updates);
        $query = sprintf('UPDATE %s SET %s WHERE %s;', $table, $column_updates, $where);

        return $this->query($query, $args);
    }







>
>
>
>
>







377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
        foreach ($fields as $key=>$value)
        {
            // Append to arguments
            $args['field_' . $key] = $value;

            $column_updates[] = sprintf('%s = :field_%s', $key, $key);
        }

        if (is_null($where))
        {
            $where = '1';
        }

        // Assemblage de la requête
        $column_updates = implode(', ', $column_updates);
        $query = sprintf('UPDATE %s SET %s WHERE %s;', $table, $column_updates, $where);

        return $this->query($query, $args);
    }