Bonjour,

j'ai une requète sql qui, dans phpadmin fonctionne très bien et qui est la suivante:


Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
UPDATE `kot_stay` SET `date_start` = STR_TO_DATE( '2020-10-16', '%Y-%m-%d'), `date_end` = STR_TO_DATE('2020-10-27', '%Y-%m-%d'), `price` = 11, `departure_time` = '20', `arrival_time` = '21' where id_stay = 446;

La requête fonctionne très bien et les champs dates sont correctement mis à jour.

Je transpose cette requête en php dans une fonction de ma classe, ce qui devient :

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
    public function update() {
        // CHANGE THIS : exemple d'utilisation
        $sql = 'UPDATE `' . self::TABLE_NAME . '` SET `'
                . self::FIELD_START . '` = STR_TO_DATE(:start, \'%Y-%m-%d\'), `'
                . self::FIELD_END . '` = STR_TO_DATE(:end, \'%Y-%m-%d\'), `'
                . self::FIELD_PRICE . '` = :price, `'
                . self::FIELD_DEPARTURE . '` = :departure, `'
                . self::FIELD_ARRIVAL . '` = :arrival '
                . ' where id_stay = ' . $this->_id;
 
        $this->_select = $this->_con->prepare($sql);
 
        $this->_select->bindParam(':start', $this->_start, PDO::PARAM_STR, 8);
        $this->_select->bindParam(':end', $this->_end, PDO::PARAM_STR, 8);
        $this->_select->bindParam(':price', $this->_price, PDO::PARAM_INT, 4);
        $this->_select->bindParam(':departure', $this->_departure_time, PDO::PARAM_STR, 5);
        $this->_select->bindParam(':arrival', $this->_arrival_time, PDO::PARAM_STR, 5);
        $this->exe();  // simple exécution de la requète avec stockage du retour et gestion des erreurs. Utilisé partout, n'est pas concerné par le problème.
    }


les variables dates, copiées depuis $_POST que j'affiche sont les suivantes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
date_start
array(1) { [0]=> string(10) "2020-10-16" }
 
date_end
array(1) { [0]=> string(10) "2020-10-17" }
les deux dates ont simplement été stockées dans les variables de classe sans manipulation.

Le soucis, c'est qu'après mise à jour, mes deux champs dates contiennent tous les deux la valeur :
Si vous avez une solution, je suis très intéressé de la connaître.